From 39e67df44d439baef61dfe003040ed84b8a1c8f9 Mon Sep 17 00:00:00 2001 From: o9000 Date: Sat, 30 May 2015 13:23:20 +0200 Subject: [PATCH] Revert "systray: Sort icons in the correct order when an icon is empty and order is right2left" This reverts commit cb17e5a662e7c0c40db9b089134c8e925731d3d6. --- src/systray/systraybar.c | 23 +++++++---------------- src/systray/systraybar.h | 3 --- src/util/timer.c | 3 +++ src/util/timer.h | 3 --- 4 files changed, 10 insertions(+), 22 deletions(-) diff --git a/src/systray/systraybar.c b/src/systray/systraybar.c index e1f6eae..e9fb61d 100644 --- a/src/systray/systraybar.c +++ b/src/systray/systraybar.c @@ -29,6 +29,7 @@ #include #include + #include "systraybar.h" #include "server.h" #include "panel.h" @@ -341,9 +342,9 @@ static gint compare_traywindows(gconstpointer a, gconstpointer b) const TrayWindow * traywin_b = (TrayWindow*)b; if (traywin_a->empty && !traywin_b->empty) - return 1 * (systray.sort == SYSTRAY_SORT_RIGHT2LEFT ? -1 : 1); + return 1; if (!traywin_a->empty && traywin_b->empty) - return -1 * (systray.sort == SYSTRAY_SORT_RIGHT2LEFT ? -1 : 1); + return -1; if (systray.sort == SYSTRAY_SORT_ASCENDING || systray.sort == SYSTRAY_SORT_DESCENDING) { @@ -602,18 +603,7 @@ void systray_render_icon_now(void* t) // we made also sure, that we always have a 32 bit visual, i.e. we can safely create 32 bit pixmaps here TrayWindow* traywin = t; - // wine tray icons update whenever mouse is over them, so we limit the updates to 50 ms - struct timespec now; - clock_gettime(CLOCK_MONOTONIC, &now); - struct timespec earliest_render = add_msec_to_timespec(traywin->time_last_render, 50); - if (compare_timespecs(&earliest_render, &now) > 0) { - traywin->render_timeout = add_timeout(50, 0, systray_render_icon_now, traywin, &traywin->render_timeout); - return; - } - traywin->time_last_render.tv_sec = now.tv_sec; - traywin->time_last_render.tv_nsec = now.tv_nsec; - traywin->render_timeout = NULL; - + traywin->render_timeout = 0; if ( traywin->width == 0 || traywin->height == 0 ) { // reschedule rendering since the geometry information has not yet been processed (can happen on slow cpu) systray_render_icon(traywin); @@ -708,8 +698,9 @@ void systray_render_icon_now(void* t) void systray_render_icon(TrayWindow* traywin) { if (FORCE_COMPOSITED_RENDERING || server.real_transparency || systray.alpha != 100 || systray.brightness != 0 || systray.saturation != 0) { - if (!traywin->render_timeout) - systray_render_icon_now(traywin); + // wine tray icons update whenever mouse is over them, so we limit the updates to 50 ms + if (!traywin->render_timeout) + traywin->render_timeout = add_timeout(50, 0, systray_render_icon_now, traywin, &traywin->render_timeout); } else { // Pixmap pix = XCreatePixmap(server.dsp, server.root_win, traywin->width, traywin->height, server.depth); diff --git a/src/systray/systraybar.h b/src/systray/systraybar.h index 2d2ff8d..915564a 100644 --- a/src/systray/systraybar.h +++ b/src/systray/systraybar.h @@ -14,8 +14,6 @@ #include "area.h" #include "timer.h" #include -#include -#include // XEMBED messages #define XEMBED_EMBEDDED_NOTIFY 0 @@ -49,7 +47,6 @@ typedef struct int empty; int pid; int chrono; - struct timespec time_last_render; } TrayWindow; diff --git a/src/util/timer.c b/src/util/timer.c index 20e11e7..65f5b85 100644 --- a/src/util/timer.c +++ b/src/util/timer.c @@ -49,7 +49,10 @@ struct _timeout { void add_timeout_intern(int value_msec, int interval_msec, void(*_callback)(void*), void* arg, timeout* t); gint compare_timeouts(gconstpointer t1, gconstpointer t2); +gint compare_timespecs(const struct timespec* t1, const struct timespec* t2); int timespec_subtract(struct timespec* result, struct timespec* x, struct timespec* y); +struct timespec add_msec_to_timespec(struct timespec ts, int msec); + int align_with_existing_timeouts(timeout* t); void create_multi_timeout(timeout* t1, timeout* t2); diff --git a/src/util/timer.h b/src/util/timer.h index 781ba21..6411b2f 100644 --- a/src/util/timer.h +++ b/src/util/timer.h @@ -66,7 +66,4 @@ void update_next_timeout(); /** Callback of all expired timeouts **/ void callback_timeout_expired(); -gint compare_timespecs(const struct timespec* t1, const struct timespec* t2); -struct timespec add_msec_to_timespec(struct timespec ts, int msec); - #endif // TIMER_H