Git Product home page Git Product logo

makron's People

Contributors

emmamai avatar goshhhy avatar

Stargazers

 avatar

Watchers

 avatar  avatar

makron's Issues

Compliance

Consider ICCCM/EWMH, start implementing it, decide it sucks, scrap all code related, write a new and completely incompatible spec, start trying to implement it, realize you didn't quite think this through, scrap the spec, reconsider ICCCM/EWMH, and then make this thing compliant.

Resizeable windows

Make it so that dragging by the borders resizes the window.
Best way would likely be to make this and the movement code one and the same, since this code will already have to deal with both movement and resizing. Maybe create an enum of different resizing modes (eg: top edge, bottom right corner, move) and have the pointer motion handler resize/move the window as appropriate based on the mode. Or possibly have a mask instead, tracking which edges to move.

Reparenting

Monitor for newly created windows. When one is found, make a frame, and reparent the new window to the frame.

Memory leak in event loop

Action:

Run toolwm, and perform any actions that generate X events.

Expected result:

Toolwm handles events properly and does not leak memory.

Actual result:

Toolwm does not handle events properly and leaks memory because it doesn't free them.

Close button

Figure out how apps expect the window manager to let them know the close button was pressed. Then make this do that.

Drop Shadow

Expand the border by 1px to the right and 1px down, use the Shape extension to cut off the top right and bottom left corners, and paint the resulting additional space black, regardless of whether the window is active.

Windows only raise when titlebar clicked

We should try to raise and focus windows whenever any part of the window is clicked (With respect to ICCCM's WM_TAKE_FOCUS), rather than just when the frame is clicked.

Crash if X not running

= Action:
Start toolwm while X is not running.
= Expected result:
Toolwm exits gracefully, letting the user know that X needs to be running to run toolwm.
= Obtained result:
Toolwm segfaults.

Get startup code going

Do whatever it is that needs to be done to make X recognize the app as a window manager. If there's already one running, exit gracefully.

WM_STATE

Set the WM_STATE property appropriately as specified in the ICCCM, section 4.1.3. On mapping a window, the state should always be set to normal. If shading, minimizing, iconifying, or any similar mechanism is implemented, then upon any one of these occurring, the WM_STATE should be set to iconic. Windows should start out in the withdrawm state, and only change when mapped by the client. Windows may only re-enter the withdrawn state if the client requests the window to be unmapped.

Draggable windows

If the titlebar area of the frame is grabbed and dragged, move the window around accordingly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.