summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-i18n/fcitx/files/fcitx-4.2.9.1-tray_icon.patch')
-rw-r--r--app-i18n/fcitx/files/fcitx-4.2.9.1-tray_icon.patch145
1 files changed, 0 insertions, 145 deletions
diff --git a/app-i18n/fcitx/files/fcitx-4.2.9.1-tray_icon.patch b/app-i18n/fcitx/files/fcitx-4.2.9.1-tray_icon.patch
deleted file mode 100644
index 7bfbc6e9ade0..000000000000
--- a/app-i18n/fcitx/files/fcitx-4.2.9.1-tray_icon.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-https://github.com/fcitx/fcitx/issues/241
-https://github.com/fcitx/fcitx/commit/c737618fffa84bfe5a6caf55cee9b9288a791bbf
-https://github.com/fcitx/fcitx/commit/353683e29be4ef26409b9a05e0cb647a5180fa8c
-https://github.com/fcitx/fcitx/commit/fe2732db27a1c2e183400ceeb3283559e10a4ca8
-https://github.com/fcitx/fcitx/commit/440c431d29876a8e4871159d289bc9a573f9a41b
-
---- /src/module/notificationitem/notificationitem.c
-+++ /src/module/notificationitem/notificationitem.c
-@@ -565,8 +565,17 @@
-
- boolean FcitxNotificationItemEnable(FcitxNotificationItem* notificationitem, FcitxNotificationItemAvailableCallback callback, void* data)
- {
-- if (!callback || notificationitem->callback)
-+ if (!callback)
- return false;
-+
-+ if (notificationitem->callback == callback) {
-+ return true;
-+ }
-+
-+ if (notificationitem->callback) {
-+ return false;
-+ }
-+
- if (notificationitem->serviceName) {
- FcitxLog(ERROR, "This should not happen, please report bug.");
- return false;
---- /src/ui/classic/TrayWindow.c
-+++ /src/ui/classic/TrayWindow.c
-@@ -48,7 +48,7 @@
- Display *dpy = classicui->dpy;
- int iScreen = classicui->iScreen;
- char strWindowName[] = "Fcitx Tray Window";
-- if (!classicui->bUseTrayIcon || classicui->isSuspend)
-+ if (!classicui->bUseTrayIcon || classicui->isSuspend || classicui->notificationItemAvailable)
- return;
-
- if (trayWindow->window == None && trayWindow->dockWindow != None) {
-@@ -61,12 +61,12 @@
- wsa.colormap = colormap;
- wsa.background_pixel = 0;
- wsa.border_pixel = 0;
-- trayWindow->window = XCreateWindow(dpy, p, -1, -1, 1, 1,
-+ trayWindow->window = XCreateWindow(dpy, p, -1, -1, 22, 22,
- 0, vi->depth, InputOutput, vi->visual,
- CWBackPixmap | CWBackPixel | CWBorderPixel | CWColormap, &wsa);
- } else {
- trayWindow->window = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy),
-- -1, -1, 1, 1, 0,
-+ -1, -1, 22, 22, 0,
- BlackPixel(dpy, DefaultScreen(dpy)),
- WhitePixel(dpy, DefaultScreen(dpy)));
- XSetWindowBackgroundPixmap(dpy, trayWindow->window, ParentRelative);
-@@ -74,6 +74,7 @@
- if (trayWindow->window == (Window) NULL)
- return;
-
-+ trayWindow->size = 22;
- XSizeHints size_hints;
- size_hints.flags = PWinGravity | PBaseSize;
- size_hints.base_width = trayWindow->size;
-@@ -161,7 +162,7 @@
- png_surface = image->image;
-
- c = cairo_create(trayWindow->cs);
-- cairo_set_source_rgba(c, 0, 0, 0, 0);
-+ cairo_set_source_rgba(c, 1, 1, 1, 0);
- cairo_set_operator(c, CAIRO_OPERATOR_SOURCE);
- cairo_paint(c);
-
-@@ -226,8 +227,6 @@
- if (event->xclient.message_type == trayWindow->atoms[ATOM_MANAGER]
- && event->xclient.data.l[1] == trayWindow->atoms[ATOM_SELECTION]
- && trayWindow->dockWindow == None) {
-- if (classicui->notificationItemAvailable)
-- return true;
- trayWindow->dockWindow = event->xclient.data.l[2];
- TrayWindowRelease(trayWindow);
- TrayWindowInit(trayWindow);
-@@ -245,6 +244,7 @@
- int size = event->xconfigure.height;
- if (size != trayWindow->size) {
- trayWindow->size = size;
-+ XResizeWindow(dpy, trayWindow->window, size, size);
- XSizeHints size_hints;
- size_hints.flags = PWinGravity | PBaseSize;
- size_hints.base_width = trayWindow->size;
-@@ -286,6 +286,14 @@
- return true;
- }
- break;
-+ case PropertyNotify:
-+ if (event->xproperty.atom == trayWindow->atoms[ATOM_VISUAL] &&
-+ event->xproperty.window == trayWindow->dockWindow) {
-+ TrayWindowRelease(trayWindow);
-+ TrayWindowInit(trayWindow);
-+ return true;
-+ }
-+ break;
- }
- return false;
- }
---- /src/ui/classic/classicui.c
-+++ /src/ui/classic/classicui.c
-@@ -168,7 +168,7 @@
- void ClassicUIDelayedInitTray(void* arg) {
- FcitxClassicUI* classicui = (FcitxClassicUI*) arg;
- // FcitxLog(INFO, "yeah we delayed!");
-- if (!classicui->bUseTrayIcon)
-+ if (!classicui->bUseTrayIcon || classicui->isSuspend)
- return;
- /*
- * if this return false, something wrong happened and callback
-@@ -187,7 +187,7 @@
- {
- FcitxClassicUI* classicui = (FcitxClassicUI*) arg;
- classicui->trayTimeout = 0;
-- if (!classicui->bUseTrayIcon)
-+ if (!classicui->bUseTrayIcon || classicui->isSuspend)
- return;
-
- if (!classicui->trayWindow->bTrayMapped) {
---- /src/ui/classic/tray.c
-+++ /src/ui/classic/tray.c
-@@ -106,8 +106,9 @@
-
- XWindowAttributes attr;
- XGetWindowAttributes(dpy, DefaultRootWindow(dpy), &attr);
-- if ((attr.your_event_mask & StructureNotifyMask) != StructureNotifyMask) {
-- XSelectInput(dpy, DefaultRootWindow(dpy), attr.your_event_mask | StructureNotifyMask); // for MANAGER selection
-+ int neededMask = StructureNotifyMask;
-+ if ((attr.your_event_mask & neededMask) != neededMask) {
-+ XSelectInput(dpy, DefaultRootWindow(dpy), attr.your_event_mask | neededMask); // for MANAGER selection
- }
- return True;
- }
-@@ -123,7 +124,7 @@
- Display* dpy = tray->owner->dpy;
-
- if (tray->dockWindow != None) {
-- XSelectInput(dpy, tray->dockWindow, StructureNotifyMask);
-+ XSelectInput(dpy, tray->dockWindow, PropertyChangeMask | StructureNotifyMask);
- TraySendOpcode(tray, SYSTEM_TRAY_REQUEST_DOCK, tray->window, 0, 0);
- tray->bTrayMapped = True;
- return 1;