[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master eb5a079 24/35: Fix cursor for new widget views
From: |
Lars Ingebrigtsen |
Subject: |
master eb5a079 24/35: Fix cursor for new widget views |
Date: |
Sat, 6 Nov 2021 22:01:59 -0400 (EDT) |
branch: master
commit eb5a079feed99379dacf8c6ced449a65e8069c4b
Author: Po Lu <luangruo@yahoo.com>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Fix cursor for new widget views
* src/xwidget.c (Fmake_xwidget): Clear hit result.
(cursor_for_hit): Use integer hit result.
(define_cursors): Set hit result appropriately.
(widget_init_view): Set cursor to the existing hit result.
* src/xwidget.h (struct xwidget): Add hit result field.
---
src/xwidget.c | 21 +++++++++++----------
src/xwidget.h | 1 +
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/xwidget.c b/src/xwidget.c
index 1f93cd3..9d1fe68 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -141,6 +141,7 @@ Returns the newly constructed xwidget, or nil if
construction fails. */)
#ifdef USE_GTK
xw->widgetwindow_osr = NULL;
xw->widget_osr = NULL;
+ xw->hit_result = 0;
if (EQ (xw->type, Qwebkit))
{
block_input ();
@@ -580,21 +581,19 @@ find_widget_at_pos (GtkWidget *w, int x, int y,
}
static Emacs_Cursor
-cursor_for_hit (WebKitHitTestResult *result,
- struct frame *frame)
+cursor_for_hit (guint result, struct frame *frame)
{
Emacs_Cursor cursor = FRAME_OUTPUT_DATA (frame)->nontext_cursor;
- if (webkit_hit_test_result_context_is_editable (result)
- || webkit_hit_test_result_context_is_selection (result)
- || (webkit_hit_test_result_get_context (result)
- & WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT))
+ if ((result & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE)
+ || (result & WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION)
+ || (result & WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT))
cursor = FRAME_X_OUTPUT (frame)->text_cursor;
- if (webkit_hit_test_result_context_is_scrollbar (result))
+ if (result & WEBKIT_HIT_TEST_RESULT_CONTEXT_SCROLLBAR)
cursor = FRAME_X_OUTPUT (frame)->vertical_drag_cursor;
- if (webkit_hit_test_result_context_is_link (result))
+ if (result & WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK)
cursor = FRAME_X_OUTPUT (frame)->hand_cursor;
return cursor;
@@ -605,6 +604,8 @@ define_cursors (struct xwidget *xw, WebKitHitTestResult
*res)
{
struct xwidget_view *xvw;
+ xw->hit_result = webkit_hit_test_result_get_context (res);
+
for (Lisp_Object tem = Vxwidget_view_list; CONSP (tem);
tem = XCDR (tem))
{
@@ -612,7 +613,7 @@ define_cursors (struct xwidget *xw, WebKitHitTestResult
*res)
if (XXWIDGET (xvw->model) == xw)
{
- xvw->cursor = cursor_for_hit (res, xvw->frame);
+ xvw->cursor = cursor_for_hit (xw->hit_result, xvw->frame);
if (xvw->wdesc != None)
XDefineCursor (xvw->dpy, xvw->wdesc, xvw->cursor);
}
@@ -1148,7 +1149,7 @@ xwidget_init_view (struct xwidget *xww,
xv->wdesc = None;
xv->frame = s->f;
- xv->cursor = FRAME_X_OUTPUT (s->f)->nontext_cursor;
+ xv->cursor = cursor_for_hit (xww->hit_result, s->f);
#elif defined NS_IMPL_COCOA
nsxwidget_init_view (xv, xww, s, x, y);
nsxwidget_resize_view(xv, xww->width, xww->height);
diff --git a/src/xwidget.h b/src/xwidget.h
index e625027..8b3aef5 100644
--- a/src/xwidget.h
+++ b/src/xwidget.h
@@ -67,6 +67,7 @@ struct xwidget
/* For offscreen widgets, unused if not osr. */
GtkWidget *widget_osr;
GtkWidget *widgetwindow_osr;
+ guint hit_result;
#elif defined (NS_IMPL_COCOA)
# ifdef __OBJC__
/* For offscreen widgets, unused if not osr. */
- master 9c9e15a 03/35: Destroy xwidgets when destroying frames, (continued)
- master 9c9e15a 03/35: Destroy xwidgets when destroying frames, Lars Ingebrigtsen, 2021/11/06
- master 1e16fc2 05/35: Prefer XMoveResizeWindow to XMoveWindow for resizing xwidgets, Lars Ingebrigtsen, 2021/11/06
- master b39f1f1 07/35: Implement function for sending events to widgets, Lars Ingebrigtsen, 2021/11/06
- master f52f772 04/35: Allow xwidgets to accept motion and button events, Lars Ingebrigtsen, 2021/11/06
- master c9c1b43 06/35: Use gtk_widget_queue_draw instead of xv_do_draw, Lars Ingebrigtsen, 2021/11/06
- master b48a89f 11/35: Fix special events in xwidgets, Lars Ingebrigtsen, 2021/11/06
- master 32b9df6 10/35: Fix drag on xwidget motion events, Lars Ingebrigtsen, 2021/11/06
- master 6ed7454 12/35: Add xwidget-webkit-edit-mode to make using the WebKit browser easier, Lars Ingebrigtsen, 2021/11/06
- master 8ddeebb 13/35: Allow enabling xwidget-webkit-edit-mode via a binding, Lars Ingebrigtsen, 2021/11/06
- master 74711c0 22/35: Display page titles in xwidget webkit header line, Lars Ingebrigtsen, 2021/11/06
- master eb5a079 24/35: Fix cursor for new widget views,
Lars Ingebrigtsen <=
- master 1a84537 29/35: Add xwidget-webkit-isearch to the menu bar and tool bar, Lars Ingebrigtsen, 2021/11/06
- master e750329 28/35: Add xwidget-webkit-isearch-mode, Lars Ingebrigtsen, 2021/11/06
- master e111a5f 08/35: Draw offscreen surface, Lars Ingebrigtsen, 2021/11/06
- master 3e64039 09/35: Handle crossing events on xwidget windows correctly, Lars Ingebrigtsen, 2021/11/06
- master 650e5e8 14/35: Fix xwidget scrolling, Lars Ingebrigtsen, 2021/11/06
- master 49ed706 15/35: Select window when clicking on an xwidget view, Lars Ingebrigtsen, 2021/11/06
- master d97718c 17/35: Add a menu to xwidget-webkit, Lars Ingebrigtsen, 2021/11/06
- master f1fbf87 20/35: Make the WebKit inspector available, Lars Ingebrigtsen, 2021/11/06
- master 7269bdd 21/35: Improve detail of load-changed xwidget events, Lars Ingebrigtsen, 2021/11/06
- master 32ec485 16/35: Redisplay xwidget view windows instead of just setting their size, Lars Ingebrigtsen, 2021/11/06