forked from AuroraMiddleware/gtk
textview: Fix context menu placement
Take the surface transform into account for positioning the context menu.
This commit is contained in:
parent
5e35a4b69a
commit
428e647238
@ -53,7 +53,7 @@
|
||||
#include "gtkmagnifierprivate.h"
|
||||
#include "gtkemojichooser.h"
|
||||
#include "gtkpango.h"
|
||||
#include "gtknative.h"
|
||||
#include "gtknativeprivate.h"
|
||||
#include "gtkwidgetprivate.h"
|
||||
|
||||
#include "a11y/gtktextviewaccessibleprivate.h"
|
||||
@ -8615,13 +8615,17 @@ gtk_text_view_do_popup (GtkTextView *text_view,
|
||||
|
||||
if (device)
|
||||
{
|
||||
GtkNative *native;
|
||||
GdkSurface *surface;
|
||||
double px, py;
|
||||
int nx, ny;
|
||||
|
||||
surface = gtk_native_get_surface (gtk_widget_get_native (GTK_WIDGET (text_view)));
|
||||
native = gtk_widget_get_native (GTK_WIDGET (text_view));
|
||||
surface = gtk_native_get_surface (native);
|
||||
gdk_surface_get_device_position (surface, device, &px, &py, NULL);
|
||||
rect.x = round (px);
|
||||
rect.y = round (py);
|
||||
gtk_native_get_surface_transform (native, &nx, &ny);
|
||||
rect.x = round (px) - nx;
|
||||
rect.y = round (py) - ny;
|
||||
|
||||
gtk_widget_translate_coordinates (GTK_WIDGET (gtk_widget_get_native (GTK_WIDGET (text_view))),
|
||||
GTK_WIDGET (text_view),
|
||||
|
Loading…
Reference in New Issue
Block a user