1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-20 04:48:06 +01:00

Prevent removal of dock icons due to resolution changes

I use xrandr to decrease the resolution of my display when I connect
it to my TV. When I change the resolution back to my monitor, a few
of the icons at the bottom of my dock are deleted.

This happens because wmaker computes the maximum number of dockapps
which the dock can hold based on the screen resolution:

        icon_count = scr->scr_height / wPreferences.icon_size;

and drops the dockapps above that number (in wDockRestoreState()).

But now the resolution can change via xrandr, so the above computation
can lead to dockapps being dropped when the new resolution is smaller
than it used to be.

To fix this it's enough to have a resolution-invariant number of allowed
dockapps.
This commit is contained in:
David Couzelis
2012-01-12 20:36:52 -05:00
committed by Carlos R. Mafra
parent 6ae01b9d90
commit 0f26c43371
2 changed files with 5 additions and 11 deletions

View File

@@ -1080,22 +1080,16 @@ WDock *wDockCreate(WScreen * scr, int type)
{
WDock *dock;
WAppIcon *btn;
int icon_count;
make_keys();
dock = wmalloc(sizeof(WDock));
memset(dock, 0, sizeof(WDock));
if (type == WM_CLIP)
icon_count = CLIP_MAX_ICONS;
else
icon_count = scr->scr_height / wPreferences.icon_size;
dock->max_icons = DOCK_MAX_ICONS;
dock->icon_array = wmalloc(sizeof(WAppIcon *) * icon_count);
memset(dock->icon_array, 0, sizeof(WAppIcon *) * icon_count);
dock->max_icons = icon_count;
dock->icon_array = wmalloc(sizeof(WAppIcon *) * dock->max_icons);
memset(dock->icon_array, 0, sizeof(WAppIcon *) * dock->max_icons);
btn = mainIconCreate(scr, type);

View File

@@ -325,8 +325,8 @@
* Set this to zero if you want instant raise. */
#define AUTO_RAISE_DELAY 600
/* Max. number of icons the clip can have */
#define CLIP_MAX_ICONS 32
/* Max. number of icons the dock and clip can have */
#define DOCK_MAX_ICONS 32
/* blink interval when invoking a menu item */
#define MENU_BLINK_DELAY 60000