Jump to: navigation, search

Improve multi-monitor support

Revision as of 08:33, 14 August 2007 by B.muskalla.gmx.net (Talk | contribs)

Project Lead: Benjamin Muskalla (IRC: benny`work)

Mentor: Kim Horne (IRC: Pookzilla)

This project is part of the Google Summer of Code 2007

About

With the price of computer monitors dropping, more and more people choose to work in a multi-monitor environment. Working in this way can be very helpful when there are large quantities of information you need to process at one time. One of the best examples: software development. Working on projects in Eclipse on a dual or triple screen display is possible – but not that efficient as with other IDEs out there. Though useful, detached views become difficult to work with when you have many of them. Detaching multiple views (to move to to another screen) is an easy task – but to arrange them, you need to do it manually. It should be possible to have the same functionality that is exposed in the workbench: sashes!

Another common task for an application today is a fullscreen mode. As seen in other development environments, this can help to concentrate on the source code itself instead of being distracted by all the views, icons and other things around the editor area. Also, the size of the editor component can be improved by disabling the toolbar, statusbar and window border in fullscreen mode. This is not only useful with multi monitor setups but also for single monitor environments.

Primary goals

Legend

Glass.gif Needs some investigation

Progress.gif Patch in progress

Ok green.gif Bug fixed / Feature added


Bugs

Progress.gif Add the ability to have multiple detached views in a single view stack. This would provide symmetry with the standard workbench window itself. As this is a big change in the codebase, several issues are covered by the following bug reports:

  • Bug 151510 [DetachedView] Multi Monitor support: sash-based detached windows
  • Bug 56625 [Workbench] Hide Perspective Bar
  • Bug 120910 [DetachedViews] Independent top-level windows lack full system menu

Besides these, there is a good chance to implement other features more easily with the replacement of DetachedWindow with a light version of the WorkbenchWindow (think of detached editors, toolbars in detached windows, new min/max story).


Glass.gif Improve detached views by fixing bugs and making the use of them more comfortable (see all bugs starting with “DetachedViews”, especially things like remembering the last position of a view - see bug 105329 and bug 80266).

Progress.gif Add to SWT the ability to have so-called “fullscreen” shells (see bug 37031 -minimally have implementations for Windows and GTK, and possibly Mac OS X). Once implemented in SWT this new feature would be added to the workbench (see bug 171398). This would allow for fullscreen editor/standard view shell arrangements in the IDE and allow RCP developers have the option to deploy “kiosk”-like RCP applications.(see Kiosk software)

  • Ok green.gif GTK implementation (attached and waiting for feedback)
  • Ok green.gif Win32 implementation (attached and waiting for feedback)
  • Ok green.gif Win Vista WPF implementation
    • Progress.gif Bug: Problems with switching to fullscreen mode when Eclipse is maximized. See comments for details
  • Glass.gif Carbon implementation
  • Ok green.gif Workbench handler
    • Ok green.gif Show message dialog to remember the user how to get back into normal mode. Option to never show the dialog again
    • Glass.gif Add preference page to configure full-screen mode (show/hide menu, show/hide toolbar and so on)

Glass.gif Fix bugs on the platform which are related to multi monitor setups.

  • Ok green.gif Bug 166544 [Wizards] WizardDialog fills the width of the screen on GTK

Secondary goals

Glass.gif Implement floating editor windows (bug 8886).

Glass.gif Floating toolbars similar to those seen in OpenOffice (see bug 179043).

Source code

As the most features are already known by existing bug reports, the easiest way to distribute my code is to attach patches to the according bug reports. Just to have a quick overview of what I've done so far - see multi-monitor-enhancements.

Don't worry if there are patches which are not already attached to a bug report - there is work in progress.

Fullscreen mode

You need to checkout the following projects from eclipse CVS (see CVS Howto) in order to play with the patches:

  • org.eclipse.swt
  • org.eclipse.swt.gtk.linux.x86 / org.eclipse.swt.win32.win32.x86 / org.eclipse.swt.wpf.win32.x86
  • org.eclipse.ui
  • org.eclipse.ui.ide
  • org.eclipse.ui.workbench

Then apply the patches, build swt (only needed for wpf and gtk) and run a new eclipse launch configration with these plugins. With Ctrl+F11 you can switch between normal and fullscreen mode. Alternatively, you can use the Window | Fullscreen menu item.

Detached Windows

For very early-adopters and to gain some feedback I put a patch regarding sash-based detached views online. You can find it in the detached_windows directory in CVS.