History log of /haiku/src/servers/app/DesktopListener.h
Revision Date Author Comments
# 27b76737 18-Jan-2014 John Scipione <jscipione@gmail.com>

App Server: Fix typo

WindowActitvated => WindowActivated


# cd67c205 09-Aug-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Only remove a window from the S&T group when the hide event is not triggered by a minimize call.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42611 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 55fbf11f 02-Aug-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

If a window is hidden remove it from the S&T group. This happens when MediaPlayer goes fullscreen. Maybe not optimal but at least consistent with terminal which also left the S&T group in fullscreen mode. This is because the terminal has no decorator in fullscreen mode and thus can't be stacked any more (maybe this should be solved in the future...). Fixes #7895, #7896.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42548 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c5525e8 25-Jul-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Only allow windows with a normal thick border to S&T. Fixes #6647.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bb2e9b06 24-Jul-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add multi tab support to the default decorator as discussed on the mailing list. Windows can be stacked on top of one another. All windows using the same decorator instance. This makes it easier to draw the stacked tabs and makes it possible to design more fancy looks for stacked windows. This also helps to fix some issues in S&T, e.g. when activating one window in a stacked group all windows have to be activated to ensure that all tabs are on top. This causes some flickering in tracker.

* Each Window has a reference counted WindowStack class which can be shared between stacked Windows. To keep the Decorator separated from Window there is another tab list in the Decorator now. The index of the stacked Window in the window stack is the same as the index of the tab in the Decorator. Properties like title or window focus are managed on a per tab basis now. This mean when you set the title in the Decorator you also have to specify the tab id which is equal to the window position in the stack.

* When drawing the decorator its important that only the top window is doing the drawing. Also the top window drawing engine should be used.
Actually that is only a problem directly after a window is stacked and the other window has still a none empty dirty region. In this case we clear the dirty region of this window and stop the drawing (the top window will draw everything).

* Track if shifting of a tab is still ongoing, i.e. mouse still down.

* The key event filter called the DesktopListener without holding the window write lock. This probably caused #7801 and #7796.

* Commented out assert's in Window::SetScreen and Window::Screen. Add TODO because I'm not sure about the screen access.

This breaks all existing decorators again, sorry guys! Haven't looked into any other then the default decorator (and the SAT decorator). Will not fix the others in the near future so go for it! Since applications should be able to rely on S&T features the other decorator must be able to handle multiple tabs as well. A simple solution would be to draw all title bars in multiple rows. That probably looks quit poorly. Think the better solution would be to draw a tab interface in the title bar, e.g. like in KDE.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42478 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83cdf43f 06-Dec-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Give the option for the desktop listener to "absorb" key events.
- Make the S&T groups navigateable by pressing the S&T key + arrow down/up. Arrow down means to send the active S&T group to the bottom. Arrow up means to rise the bottom S&T group to the front. If no S&T group is selected, in both cases the front-most S&T group is activated.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39751 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ff327de 19-Nov-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Make MessageForListener a bit more flexible, passing a fix ServerLink is sometimes not enough and a separate sender and receiver is needed.
- Add communication part to restore and save S&T groups.
- Fix call of GetDecoratorSettings listener hook.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39534 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4772e0b2 08-Nov-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixed a typo. No functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39355 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7306ba04 19-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Watch the window look and remove a window from a S&T group if the look changed to B_NO_BORDER_WINDOW_LOOK.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38731 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 08a79ab2 19-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix size limits function name.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38725 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dcbc4af5 16-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Add size limit changes to the listener interface.
- Update size limit constraints in S&T only if necessary.
- Header style fixes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38682 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bba6f48d 17-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add Notify* prefix to DesktopObservable hooks.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38218 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0494bc5 17-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add facility to communicate with the desktop listener over an app server link. The ServerWindow dispatch the message to the DesktopObservable which dispatch it to the correct listener.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38169 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c84e1250 12-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Rework listener interface as suggested by Axel.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38072 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d25313d4 12-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add listener for the tab location.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38067 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d6734c08 04-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Notify listener when they are registered and unregistered.
- First reload decorators and then the listeners. (my SAT listener caches the decorator when it is registered so the new one should already be loaded)
- Make the Desktop all window list accessible, help full when a listener is registered and want to iterate over the existing windows.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37912 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a92ef26c 03-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix coding style.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37886 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b6ba2290 02-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Introduce a new DecorAddOn class which provide the DecorManager with the needed Decorator, WindowBehaviour and DesktopListener.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37857 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 860dfc9a 28-Jul-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Introduce a DesktopListener interface to the Desktop class (needed for SAT).
- Add a minimize method to desktop.
- Make _CurrentWindows public.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37800 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27b76737931b1df5d239358ae119d818bf3bf0d2 18-Jan-2014 John Scipione <jscipione@gmail.com>

App Server: Fix typo

WindowActitvated => WindowActivated


# cd67c205ff3aae882046fc96fc181e3b601be500 09-Aug-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Only remove a window from the S&T group when the hide event is not triggered by a minimize call.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42611 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 55fbf11fd7ac3b4c6002b4d8ff3ec2372fa5e8c4 02-Aug-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

If a window is hidden remove it from the S&T group. This happens when MediaPlayer goes fullscreen. Maybe not optimal but at least consistent with terminal which also left the S&T group in fullscreen mode. This is because the terminal has no decorator in fullscreen mode and thus can't be stacked any more (maybe this should be solved in the future...). Fixes #7895, #7896.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42548 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c5525e83489cc80600bc31d1a8be774bccd34c0 25-Jul-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Only allow windows with a normal thick border to S&T. Fixes #6647.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bb2e9b06acb1783543442464561b7811892ee7e2 24-Jul-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add multi tab support to the default decorator as discussed on the mailing list. Windows can be stacked on top of one another. All windows using the same decorator instance. This makes it easier to draw the stacked tabs and makes it possible to design more fancy looks for stacked windows. This also helps to fix some issues in S&T, e.g. when activating one window in a stacked group all windows have to be activated to ensure that all tabs are on top. This causes some flickering in tracker.

* Each Window has a reference counted WindowStack class which can be shared between stacked Windows. To keep the Decorator separated from Window there is another tab list in the Decorator now. The index of the stacked Window in the window stack is the same as the index of the tab in the Decorator. Properties like title or window focus are managed on a per tab basis now. This mean when you set the title in the Decorator you also have to specify the tab id which is equal to the window position in the stack.

* When drawing the decorator its important that only the top window is doing the drawing. Also the top window drawing engine should be used.
Actually that is only a problem directly after a window is stacked and the other window has still a none empty dirty region. In this case we clear the dirty region of this window and stop the drawing (the top window will draw everything).

* Track if shifting of a tab is still ongoing, i.e. mouse still down.

* The key event filter called the DesktopListener without holding the window write lock. This probably caused #7801 and #7796.

* Commented out assert's in Window::SetScreen and Window::Screen. Add TODO because I'm not sure about the screen access.

This breaks all existing decorators again, sorry guys! Haven't looked into any other then the default decorator (and the SAT decorator). Will not fix the others in the near future so go for it! Since applications should be able to rely on S&T features the other decorator must be able to handle multiple tabs as well. A simple solution would be to draw all title bars in multiple rows. That probably looks quit poorly. Think the better solution would be to draw a tab interface in the title bar, e.g. like in KDE.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42478 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83cdf43f094acddb1d04e00b6dbc3977ae60d6fa 06-Dec-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Give the option for the desktop listener to "absorb" key events.
- Make the S&T groups navigateable by pressing the S&T key + arrow down/up. Arrow down means to send the active S&T group to the bottom. Arrow up means to rise the bottom S&T group to the front. If no S&T group is selected, in both cases the front-most S&T group is activated.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39751 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ff327dea3cf4ab84fa475ada4b073e311794654 19-Nov-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Make MessageForListener a bit more flexible, passing a fix ServerLink is sometimes not enough and a separate sender and receiver is needed.
- Add communication part to restore and save S&T groups.
- Fix call of GetDecoratorSettings listener hook.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39534 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4772e0b22ee19a8d7b9eda6aa4c5e758cdeec8d7 08-Nov-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixed a typo. No functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39355 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7306ba04487ad91c70aa4511f450fab9a1fe5ce2 19-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Watch the window look and remove a window from a S&T group if the look changed to B_NO_BORDER_WINDOW_LOOK.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38731 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 08a79ab22c6bb9f6adea1fc34756a74a57faddad 19-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix size limits function name.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38725 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dcbc4af5d118efdd9602bd6f8d5844c1ddad4da2 16-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Add size limit changes to the listener interface.
- Update size limit constraints in S&T only if necessary.
- Header style fixes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38682 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bba6f48d645fb24c509f4a8c8da4886f074513dc 17-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add Notify* prefix to DesktopObservable hooks.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38218 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0494bc592de7d83d2cfea79063b7c90a6a7e780 17-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add facility to communicate with the desktop listener over an app server link. The ServerWindow dispatch the message to the DesktopObservable which dispatch it to the correct listener.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38169 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c84e125085a87d34ac311f085c4eca870e2228b9 12-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Rework listener interface as suggested by Axel.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38072 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d25313d44f06867b7559f980667e409087b0fde1 12-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add listener for the tab location.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38067 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d6734c083a96002fba135f0fe8dc0163699f7ce9 04-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Notify listener when they are registered and unregistered.
- First reload decorators and then the listeners. (my SAT listener caches the decorator when it is registered so the new one should already be loaded)
- Make the Desktop all window list accessible, help full when a listener is registered and want to iterate over the existing windows.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37912 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a92ef26cd77d57b8448c07a8fb96e6ec5f02af69 03-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix coding style.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37886 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b6ba2290fc6e584dbb45c4a2e9940b576a47be56 02-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Introduce a new DecorAddOn class which provide the DecorManager with the needed Decorator, WindowBehaviour and DesktopListener.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37857 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 860dfc9a77381099c8c9549e28865ed015886bf7 28-Jul-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Introduce a DesktopListener interface to the Desktop class (needed for SAT).
- Add a minimize method to desktop.
- Make _CurrentWindows public.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37800 a95241bf-73f2-0310-859d-f6bbb57e9c96