VSCR: Definition of virtual_screen

This patch includes the definition for virtual_screen. This virtual
screen will include all the related stuff about the screen, but the
physical screen is not used.

I created this new struct because the rigth way to do the things is:

1. One X11 ServerLayout could have one or more Screens
2. One Screen could have one or more Workspaces.
3. Clip, Dock, Menus,... belongs to the Screen, not to the workspace.

I am working now in a complex X11 environment, with multiple screens
and without Xinerama. Configuration below.

I will create a set of patches to solve the problems with the secondary
screen. Now only the first screen contains items. Secondary is mostly empty.

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" 1920 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer V223HQ"
    HorizSync       31.0 - 84.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Acer AL1715"
    HorizSync       30.0 - 83.0
    VertRefresh     55.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTS 450"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection
Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTS 450"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "DVI-I-0: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-1"
    Option         "metamodes" "DVI-I-1: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
VSCR: Move global_icon_count and last_dock to vscr

This patch moves the variables global_icon_count and last_dock from the
global struct to the virtual screen struct. Now we have different counter
and last_dock pointers in the screens.
VSCR: Move root_menu to vscr

This patch moves the root menu to vscr. The root menu is the same
for all workspaces, but the menu is used to launch the applications
in different screens.

TODO: In next versions, after the VSCR changes, we should check if
we can use the same menu.
VSCR: Move switch_menu to vscr

This patch moves the switch menu to vscr. The switch menu is different between
screens, because window lists are different too.
VSCR: Move icon_menu to vscr

This patch moves the icon menu to vscr. The icon menu is different between
screens, because the workspace list is different.

TODO: In next versions, after the VSCR changes, we should check if
we can use the same menu.
VSCR: Move window_menu to vscr

This patch moves the icon menu to vscr. The icon menu is different between
screens, because the workspace list is different.

TODO: In next versions, after the VSCR changes, we should check if
we can use the same menu.
BUG in VSCR: Move window_menu to vscr

The commit "VSCR: Move window_menu to vscr" removes a curly brackets
and it creates a bug.

This patch only includes the previously removed curly brackets.
VSCR: Move menu flags to vscr

This patch moves the menu flags to vscr. Becasue rootmenu is different
between screens, we need different flags.

TODO: In next versions, after the VSCR changes, we should check if
we can move this flags to the workspace.c/h file.
VSCR: Move workspace to virtual_screen

This patch moves all the related info about workspace to the virtual_screen.
Now, every virtual screen will have their own workspace, and the workspace
is not shared between phisical screens (in Xinerama there is only one wks).
VSCR: Move clip info to virtual_screen

This patch moves all the related info about clip to the virtual_screen.
Now, every virtual screen will have their own clip, and the clip
is not shared between phisical screens (in Xinerama there is only one clip).

The Clip icon is shared, so is included in the global info.
VSCR: Move dock info to virtual_screen

This patch moves all the related info about dock to the virtual_screen.
Now, every virtual screen will have their own dock, and the dock
is not shared between phisical screens (in Xinerama there is only one dock).
VSCR: Move drawers info to virtual_screen

This patch moves all the related info about drawers to the virtual_screen.
Now, every virtual screen will have their own drawers, and the drawers
are not shared between phisical screens.
debian: Capitalize "Maker" in X session desktop entry.
WPrefs: moved the titles of Clip Delay frames to an array

As the code is already treating these frames as an array, it is a good idea
to do the same for their titles so it is possible to reuse its size at
convenient places to make the code safer.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
WPrefs: grouped the balloon text for the dock configuration with the rest of the struct

As the data to create the icons for the dock configuration was already
grouped in a structure, it is a good idea to also include the balloon text
which is linked to them in the array, so the code is simpler and safer.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
WPrefs: grouped items related to the mouse actions in a single place

Having all these information spread in different places makes it error
prone when wanting to add/remove/change something in the list are there are
many unrelated places to keep in sync.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
WPrefs: reorganised the Mouse Settings panel for better look

As many option have been added to it, the panel started to look overloaded.
Content have been slightly moved to make it look nicely organised inside
the window, and with possibly less truncated text.

Took opportunity to include a visual feedback to the user, when checking
the "Disable mouse actions" box then we disable the related popup menu
buttons to reflect this.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
WPrefs: reorganised the Preference panel for better look

As many option have been added to it, the panel started to look overloaded.
With a little rework, it now displays the same options in a cleaner way.
Took opportunity to include some balloon help for the AppIcon option to try
to be clearer than what the short label allows.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
WPrefs: reorganised the Window Handling Settings panel for better look

Due to a long history of evolution, it was time to rethink the placement
of all widgets to achieve a clean look. The frames have been reshuffled to
be aligned to each other, and as a bonus the Mod+Wheel setting now has its
own frame instead of being part of another unrelated frame.

Took opportunity to include an info balloon to explain what the "by
keyboard" checkbox actually means.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
WPrefs: small reorganisation in the Dock Preferences panel

The goal is to reduce the risk for truncated label, and take the
opportunity to align everything with consistent spacings.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>