mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 20:38:08 +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:
committed by
Carlos R. Mafra
parent
6ae01b9d90
commit
0f26c43371
12
src/dock.c
12
src/dock.c
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user