mirror of
https://github.com/reactos/reactos.git
synced 2024-10-23 14:36:11 +00:00
desktop switching: allow applications to be visible only on one desktop
svn path=/trunk/; revision=8446
This commit is contained in:
parent
44cb45b570
commit
a5248aa7bc
|
@ -182,10 +182,18 @@ void Desktops::SwitchToDesktop(int idx)
|
||||||
WindowSet& windows = old_desktop._windows;
|
WindowSet& windows = old_desktop._windows;
|
||||||
|
|
||||||
windows.clear();
|
windows.clear();
|
||||||
|
|
||||||
|
// collect window handles of all other desktops
|
||||||
|
WindowSet other_wnds;
|
||||||
|
for(const_iterator it1=begin(); it1!=end(); ++it1)
|
||||||
|
for(WindowSet::const_iterator it2=it1->_windows.begin(); it2!=it1->_windows.end(); ++it2)
|
||||||
|
other_wnds.insert(*it2);
|
||||||
|
|
||||||
EnumWindows(SwitchDesktopEnumFct, (LPARAM)&windows);
|
EnumWindows(SwitchDesktopEnumFct, (LPARAM)&windows);
|
||||||
|
|
||||||
old_desktop._hwndForeground = (HWND)SendMessage(g_Globals._hwndDesktopBar, PM_GET_LAST_ACTIVE, 0, 0);
|
old_desktop._hwndForeground = (HWND)SendMessage(g_Globals._hwndDesktopBar, PM_GET_LAST_ACTIVE, 0, 0);
|
||||||
|
|
||||||
// hide all windows we found
|
// hide all windows of the previous desktop
|
||||||
for(WindowSet::iterator it=windows.begin(); it!=windows.end(); ++it)
|
for(WindowSet::iterator it=windows.begin(); it!=windows.end(); ++it)
|
||||||
ShowWindowAsync(*it, SW_HIDE);
|
ShowWindowAsync(*it, SW_HIDE);
|
||||||
|
|
||||||
|
@ -196,6 +204,11 @@ void Desktops::SwitchToDesktop(int idx)
|
||||||
if (desktop._hwndForeground)
|
if (desktop._hwndForeground)
|
||||||
SetForegroundWindow(desktop._hwndForeground);
|
SetForegroundWindow(desktop._hwndForeground);
|
||||||
|
|
||||||
|
// remove the window handles of the other desktops from what we found on the previous desktop
|
||||||
|
for(WindowSet::const_iterator it=other_wnds.begin(); it!=other_wnds.end(); ++it)
|
||||||
|
windows.erase(*it);
|
||||||
|
|
||||||
|
// We don't need to store the window handles of what's now visible the now current desktop.
|
||||||
desktop._windows.clear();
|
desktop._windows.clear();
|
||||||
|
|
||||||
_current_desktop = idx;
|
_current_desktop = idx;
|
||||||
|
|
|
@ -21,8 +21,11 @@
|
||||||
- implement blink effect in task bar for SetForegoundWindow() requests
|
- implement blink effect in task bar for SetForegoundWindow() requests
|
||||||
- implement more than one column or scrolling in start menus for very crowded start menus
|
- implement more than one column or scrolling in start menus for very crowded start menus
|
||||||
- Execute selected programs with additional command line options ("Run" dialog with pre-filled edit field)
|
- Execute selected programs with additional command line options ("Run" dialog with pre-filled edit field)
|
||||||
|
- switch background images with desktop switcher
|
||||||
|
- Desktop Manager: Desktop Names; Speicherung der Verteilung von Applikations-Fenstern auf die verschiedenen Desktops -> config file
|
||||||
- autostart doesn't work on NT4 ?
|
- autostart doesn't work on NT4 ?
|
||||||
|
- hide desktop bar when showing full screen applications
|
||||||
|
- new start menu entry "Filemanager" close to "Explore" -> display C: and D: drive in MDI window
|
||||||
|
|
||||||
- Startmenu: You can't close the start menu with pressing Win-key You can open the start menu
|
- Startmenu: You can't close the start menu with pressing Win-key You can open the start menu
|
||||||
with pressing Win-key, but can't close with another hit of Win-key.
|
with pressing Win-key, but can't close with another hit of Win-key.
|
||||||
|
@ -32,24 +35,3 @@
|
||||||
Yes, ROS explorer doesn't read many settings from the registry currently,
|
Yes, ROS explorer doesn't read many settings from the registry currently,
|
||||||
as it doesn't have a way to configure them. (missing configuration dialogs)
|
as it doesn't have a way to configure them. (missing configuration dialogs)
|
||||||
|
|
||||||
- Vollbildfenster suchen -> Taskleiste ausblenden
|
|
||||||
- Desktop-Manager: Speicherung der Verteilung von Applikations-Fenstern auf die verschiedenen Desktops; Desktop-Namen
|
|
||||||
- neuer Startmenü-Eintrag: "Filemanager" neben "Explore" -> Anzeige von C: und D:
|
|
||||||
|
|
||||||
> When minimizing window such as Sleipnir; a popular
|
|
||||||
> IE-based tab browser in Japan:
|
|
||||||
> http://www20.pos.to/~sleipnir/software/sleipnir/index.html
|
|
||||||
> the window'll not stored into the notification area but just minimized; instead of the setting.
|
|
||||||
> This might be a problem of application which doesn't handle the event, but it works under MS-explorer.
|
|
||||||
> I tested on 1.42JA, but I also tested and it reproduced on 1.41EN.
|
|
||||||
> The setting are: Tools->Sleipnir Options->System Tray->turn both settings on
|
|
||||||
> When you click the minimize button on the top-right of the window, it
|
|
||||||
> minimizes successfully into SysTray, but on the other hand, when you minimize the
|
|
||||||
> window by clicking the taskbutton, it minimizes but doesn't go into SysTray.
|
|
||||||
|
|
||||||
> mIRC doesn't expect to be on two desktops at the same time.
|
|
||||||
> There may be a internal variables, which say: "I am minimized or not." and
|
|
||||||
> "I am visible or not." So I will have to adjust desktop switching in a
|
|
||||||
> way, that applications are either visible or not - but not mixed between two
|
|
||||||
> different desktops.
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue