gtk+3.0: fix position for tooltip in gtk3 (lxde/trisquel-mini)
This commit is contained in:
parent
d2b3ecfbd6
commit
8dd4361d9f
2 changed files with 66 additions and 0 deletions
36
helpers/DATA/gtk+3.0/000-fix_tooltip_gtk+3.0_lxde.patch
Normal file
36
helpers/DATA/gtk+3.0/000-fix_tooltip_gtk+3.0_lxde.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
From baa351f7e2d8cb92e94ce122bf8b96cfe88f9a5a Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Ingo=20Br=C3=BCckl?= <ib@oddnet.de>
|
||||||
|
Date: Mon, 17 Feb 2025 18:04:20 +0100
|
||||||
|
Subject: [PATCH] Fix position of child tooltips in custom windows
|
||||||
|
|
||||||
|
Unlike a GTK_TOPLEVEL_WINDOW, a custom toplevel window derived from
|
||||||
|
GtkWindow can have non-zero x/y allocations (like a panel at the bottom
|
||||||
|
of the screen).
|
||||||
|
|
||||||
|
Since the allocation of such a toplevel window is relative to the screen
|
||||||
|
origin, the position of the child must also be relative to the screen
|
||||||
|
origin so that we get the correct coordinates relative to each other.
|
||||||
|
|
||||||
|
diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c
|
||||||
|
index 1bf72f19..3d6a99f1 100644
|
||||||
|
--- a/gtk/gtktooltip.c
|
||||||
|
+++ b/gtk/gtktooltip.c
|
||||||
|
@@ -875,6 +875,7 @@ gtk_tooltip_position (GtkTooltip *tooltip,
|
||||||
|
GdkWindow *widget_window;
|
||||||
|
GdkWindow *effective_toplevel;
|
||||||
|
GtkWidget *toplevel;
|
||||||
|
+ GtkAllocation toplevel_allocation;
|
||||||
|
int rect_anchor_dx = 0;
|
||||||
|
int cursor_size;
|
||||||
|
int anchor_rect_padding;
|
||||||
|
@@ -886,8 +887,9 @@ gtk_tooltip_position (GtkTooltip *tooltip,
|
||||||
|
tooltip->tooltip_widget = new_tooltip_widget;
|
||||||
|
|
||||||
|
toplevel = _gtk_widget_get_toplevel (new_tooltip_widget);
|
||||||
|
+ _gtk_widget_get_allocation (toplevel, &toplevel_allocation);
|
||||||
|
gtk_widget_translate_coordinates (new_tooltip_widget, toplevel,
|
||||||
|
- 0, 0,
|
||||||
|
+ toplevel_allocation.x, toplevel_allocation.y,
|
||||||
|
&anchor_rect.x, &anchor_rect.y);
|
||||||
|
|
||||||
|
anchor_rect.width = gtk_widget_get_allocated_width (new_tooltip_widget);
|
||||||
30
helpers/make-gtk+3.0
Normal file
30
helpers/make-gtk+3.0
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2025 Luis Guzman <ark@switnet.org>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
#
|
||||||
|
|
||||||
|
VERSION=1
|
||||||
|
|
||||||
|
. ./config
|
||||||
|
|
||||||
|
# TODO: Keep an eye on this final fix to match changes accordingly.
|
||||||
|
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8216
|
||||||
|
patch_p1 $DATA/000-fix_tooltip_gtk+3.0_lxde.patch
|
||||||
|
|
||||||
|
changelog "Apply fix for tooltip on lxde / trisquel-mini."
|
||||||
|
|
||||||
|
package
|
||||||
Loading…
Add table
Add a link
Reference in a new issue