all repos — tint2 @ 5a789c2d7f1715646778e1f5cd77ae004f7e6cc7

fork of the tint2 desktop panel for my custom setup - only minimized windows across all desktops for the taskbar

Revert panel to _NET_WM_WINDOW_TYPE_DOCK, implement panel_layer=float (Issue 461).


git-svn-id: http://tint2.googlecode.com/svn/trunk@677 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
google@craigoakes.com google@craigoakes.com@121b4492-b84c-0410-8b4c-0d4edfb3f3cc
commit

5a789c2d7f1715646778e1f5cd77ae004f7e6cc7

parent

0fa10d83b9f70dec590dc0df1111fd38204a6037

M src/config.csrc/config.c

@@ -280,6 +280,8 @@ if (strcmp(value, "bottom") == 0)

panel_layer = BOTTOM_LAYER; else if (strcmp(value, "top") == 0) panel_layer = TOP_LAYER; + else if (strcmp(value, "float") == 0) + panel_layer = FLOAT_LAYER; else panel_layer = NORMAL_LAYER; }
M src/panel.csrc/panel.c

@@ -510,18 +510,36 @@ g_free(name);

} // Dock - long val = panel_dock ? server.atom._NET_WM_WINDOW_TYPE_DOCK : server.atom._NET_WM_WINDOW_TYPE_NORMAL; + long val = server.atom._NET_WM_WINDOW_TYPE_DOCK; XChangeProperty (server.dsp, p->main_win, server.atom._NET_WM_WINDOW_TYPE, XA_ATOM, 32, PropModeReplace, (unsigned char *) &val, 1); - // Sticky and below other window val = ALLDESKTOP; XChangeProperty (server.dsp, p->main_win, server.atom._NET_WM_DESKTOP, XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &val, 1); - Atom state[4]; + + Atom state[5]; + int nb_atoms; state[0] = server.atom._NET_WM_STATE_SKIP_PAGER; state[1] = server.atom._NET_WM_STATE_SKIP_TASKBAR; state[2] = server.atom._NET_WM_STATE_STICKY; - state[3] = panel_layer == BOTTOM_LAYER ? server.atom._NET_WM_STATE_BELOW : server.atom._NET_WM_STATE_ABOVE; - int nb_atoms = panel_layer == NORMAL_LAYER ? 3 : 4; + switch ( panel_layer ) { + case BOTTOM_LAYER: + state[3] = server.atom._NET_WM_STATE_BELOW; + nb_atoms = 4; + break; + case NORMAL_LAYER: + nb_atoms = 3; + break; + case TOP_LAYER: + state[3] = server.atom._NET_WM_STATE_ABOVE; + nb_atoms = 4; + break; + case FLOAT_LAYER: + // Float above or below (allowed by some WM for some layers) + state[3] = server.atom._NET_WM_STATE_BELOW; + state[4] = server.atom._NET_WM_STATE_ABOVE; + nb_atoms = 5; + break; + } XChangeProperty (server.dsp, p->main_win, server.atom._NET_WM_STATE, XA_ATOM, 32, PropModeReplace, (unsigned char *) state, nb_atoms); // Unfocusable
M src/panel.hsrc/panel.h

@@ -39,7 +39,7 @@ extern int mouse_tilt_right;

//panel mode enum { SINGLE_DESKTOP=0, MULTI_DESKTOP }; -enum { BOTTOM_LAYER, NORMAL_LAYER, TOP_LAYER }; +enum { BOTTOM_LAYER, NORMAL_LAYER, TOP_LAYER, FLOAT_LAYER }; extern int panel_mode; extern int wm_menu; extern int panel_dock;
M src/tint2conf/properties.csrc/tint2conf/properties.c

@@ -985,6 +985,7 @@ gtk_table_attach(GTK_TABLE(table), panel_combo_layer, 7, 8, 0, 1, GTK_FILL, 0, 0, 0);

gtk_combo_box_append_text(GTK_COMBO_BOX(panel_combo_layer), _("Top")); gtk_combo_box_append_text(GTK_COMBO_BOX(panel_combo_layer), _("Normal")); gtk_combo_box_append_text(GTK_COMBO_BOX(panel_combo_layer), _("Bottom")); + gtk_combo_box_append_text(GTK_COMBO_BOX(panel_combo_layer), _("Float")); label = gtk_label_new(_("Maximized window")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
M src/tint2conf/properties_rw.csrc/tint2conf/properties_rw.c

@@ -138,10 +138,12 @@ }

fprintf(fp, "\n"); fprintf(fp, "panel_layer = "); - if (gtk_combo_box_get_active(GTK_COMBO_BOX(panel_combo_layer)) == 0) { + if (gtk_combo_box_get_active(GTK_COMBO_BOX(panel_combo_layer)) == 2) { fprintf(fp, "top"); } else if (gtk_combo_box_get_active(GTK_COMBO_BOX(panel_combo_layer)) == 1) { - fprintf(fp, "center"); + fprintf(fp, "normal"); + } else if (gtk_combo_box_get_active(GTK_COMBO_BOX(panel_combo_layer)) == 3) { + fprintf(fp, "float"); } else { fprintf(fp, "bottom"); }

@@ -687,9 +689,11 @@ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(panel_dock), atoi(value));

} else if (strcmp(key, "panel_layer") == 0) { if (strcmp(value, "bottom") == 0) - gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_layer), 2); + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_layer), 0); else if (strcmp(value, "top") == 0) - gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_layer), 0); + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_layer), 2); + else if (strcmp(value, "float") == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_layer), 3); else gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_layer), 1); }
M src/tint2conf/tintwizard.pysrc/tint2conf/tintwizard.py

@@ -502,7 +502,7 @@ self.panelDock = createCheckButton(self.tablePanelSettings, active=False, gridX=1, gridY=1, xExpand=True, yExpand=False, handler=self.changeOccurred)

self.registerComponent("panel_dock", self.panelDock) createLabel(self.tablePanelSettings, text="Panel Layer", gridX=0, gridY=2, xPadding=10) - self.panelLayer = createComboBox(self.tablePanelSettings, ["bottom", "top", "normal"], gridX=1, gridY=2, handler=self.changeOccurred) + self.panelLayer = createComboBox(self.tablePanelSettings, ["bottom", "top", "normal", "float"], gridX=1, gridY=2, handler=self.changeOccurred) self.registerComponent("panel_layer", self.panelLayer) createLabel(self.tablePanelSettings, text="Strut Policy", gridX=0, gridY=3, xPadding=10)