all repos — tint2 @ 28d726626d5db9178b7deaa13bfcfa9c3e796895

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

Xorg: Add option to disable transparency (workaround for broken graphics stacks; issues 432, 435, 439)

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

28d726626d5db9178b7deaa13bfcfa9c3e796895

parent

45cc690167fbe1af1aef4c0993e5fa48f444798b

4 files changed, 25 insertions(+), 11 deletions(-)

jump to
M src/config.csrc/config.c

@@ -283,6 +283,9 @@ panel_layer = TOP_LAYER;

else panel_layer = NORMAL_LAYER; } + else if (strcmp (key, "disable_transparency") == 0) { + server.disable_transparency = atoi (value); + } /* Battery */ else if (strcmp (key, "battery_low_status") == 0) {
M src/server.csrc/server.c

@@ -125,6 +125,7 @@ g_strfreev(server.monitor[i].names);

free(server.monitor); } if (server.gc) XFreeGC(server.dsp, server.gc); + server.disable_transparency = 0; }

@@ -408,7 +409,7 @@ server.visual32 = visual;

server.colormap32 = XCreateColormap(server.dsp, server.root_win, visual, AllocNone); } - if (visual && server.composite_manager != None && snapshot_path == 0) { + if (!server.disable_transparency && visual && server.composite_manager != None && snapshot_path == 0) { XSetWindowAttributes attrs; attrs.event_mask = StructureNotifyMask; XChangeWindowAttributes (server.dsp, server.composite_manager, CWEventMask, &attrs);
M src/server.hsrc/server.h

@@ -106,6 +106,7 @@ Display *dsp;

Window root_win; Window composite_manager; int real_transparency; + int disable_transparency; // current desktop int desktop; int screen;
M src/tint.csrc/tint.c

@@ -171,7 +171,7 @@ }

#endif // HAVE_SN -void init_X11() +void init_X11_pre_config() { server.dsp = XOpenDisplay (NULL); if (!server.dsp) {

@@ -182,6 +182,20 @@ server_init_atoms ();

server.screen = DefaultScreen (server.dsp); server.root_win = RootWindow(server.dsp, server.screen); server.desktop = server_get_current_desktop (); + + setlocale (LC_ALL, ""); + // config file use '.' as decimal separator + setlocale(LC_NUMERIC, "POSIX"); + + // get monitor and desktop config + get_monitors(); + get_desktops(); + + server.disable_transparency = 0; +} + +void init_X11_post_config() +{ server_init_visual(); XSetErrorHandler ((XErrorHandler) server_catch_error);

@@ -204,10 +218,6 @@ imlib_context_set_colormap (server.colormap);

/* Catch events */ XSelectInput (server.dsp, server.root_win, PropertyChangeMask|StructureNotifyMask); - - setlocale (LC_ALL, ""); - // config file use '.' as decimal separator - setlocale(LC_NUMERIC, "POSIX"); // load default icon gchar *path;

@@ -220,10 +230,6 @@ if (g_file_test (path, G_FILE_TEST_EXISTS))

default_icon = imlib_load_image(path); g_free(path); } - - // get monitor and desktop config - get_monitors(); - get_desktops(); }

@@ -1023,7 +1029,8 @@ int hidden_dnd = 0;

start: init (argc, argv); - init_X11(); + + init_X11_pre_config(); i = 0; if (config_path)

@@ -1035,6 +1042,8 @@ fprintf(stderr, "usage: tint2 [-c] <config_file>\n");

cleanup(); exit(1); } + + init_X11_post_config(); init_panel(); if (snapshot_path) {