From ceb6a44238c18c89b62c49adb967dc2a007c95b5 Mon Sep 17 00:00:00 2001 From: o9000 Date: Fri, 1 Sep 2017 11:34:57 +0200 Subject: [PATCH] Launcher: fix layout on vertical panels --- src/launcher/launcher.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/launcher/launcher.c b/src/launcher/launcher.c index 18cbafb..eb93e73 100644 --- a/src/launcher/launcher.c +++ b/src/launcher/launcher.c @@ -64,6 +64,8 @@ void launcher_reload_hidden_icons(Launcher *launcher); void launcher_icon_on_change_layout(void *obj); int launcher_compute_desired_size(void *obj); +void relayout_launcher(); + void default_launcher() { launcher_enabled = 0; @@ -95,6 +97,7 @@ void init_launcher_panel(void *p) launcher->area._draw_foreground = NULL; launcher->area.size_mode = LAYOUT_FIXED; launcher->area._resize = resize_launcher; + launcher->area._on_change_layout = relayout_launcher; launcher->area._compute_desired_size = launcher_compute_desired_size; launcher->area.resize_needed = 1; schedule_redraw(&launcher->area); @@ -325,6 +328,17 @@ gboolean resize_launcher(void *obj) return TRUE; } +void relayout_launcher(void *obj) +{ + Launcher *launcher = (Launcher *)obj; + for (GSList *l = launcher->list_icons; l; l = l->next) { + LauncherIcon *launcherIcon = (LauncherIcon *)l->data; + if (!launcherIcon->area.on_screen) + continue; + launcher_icon_on_change_layout(launcherIcon); + } +} + // Here we override the default layout of the icons; normally Area layouts its children // in a stack; we need to layout them in a kind of table void launcher_icon_on_change_layout(void *obj)