summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdk/macos/GdkMacosWindow.c8
-rw-r--r--gdk/macos/gdkmacosdisplay-translate.c43
-rw-r--r--gdk/macos/gdkmacostoplevelsurface.c3
-rw-r--r--gtk/gtkscrolledwindow.c29
-rw-r--r--po/zh_CN.po87
5 files changed, 108 insertions, 62 deletions
diff --git a/gdk/macos/GdkMacosWindow.c b/gdk/macos/GdkMacosWindow.c
index f879decbc9..3ed60cb049 100644
--- a/gdk/macos/GdkMacosWindow.c
+++ b/gdk/macos/GdkMacosWindow.c
@@ -668,7 +668,12 @@ typedef NSString *CALayerContentsGravity;
is_opaque = (([self styleMask] & NSWindowStyleMaskTitled) != 0);
if (was_fullscreen != is_fullscreen)
- _gdk_macos_surface_update_fullscreen_state (gdk_surface);
+ {
+ if (was_fullscreen)
+ [self setFrame:lastUnfullscreenFrame display:NO];
+
+ _gdk_macos_surface_update_fullscreen_state (gdk_surface);
+ }
if (was_opaque != is_opaque)
{
@@ -753,7 +758,6 @@ typedef NSString *CALayerContentsGravity;
-(void)windowWillExitFullScreen:(NSNotification *)aNotification
{
- [self setFrame:lastUnfullscreenFrame display:NO];
}
-(void)windowDidExitFullScreen:(NSNotification *)aNotification
diff --git a/gdk/macos/gdkmacosdisplay-translate.c b/gdk/macos/gdkmacosdisplay-translate.c
index 8e3cd90b82..646ba0cd9e 100644
--- a/gdk/macos/gdkmacosdisplay-translate.c
+++ b/gdk/macos/gdkmacosdisplay-translate.c
@@ -612,6 +612,8 @@ fill_scroll_event (GdkMacosDisplay *self,
GdkModifierType state;
GdkDevice *pointer;
GdkEvent *ret = NULL;
+ NSEventPhase phase;
+ NSEventPhase momentumPhase;
GdkSeat *seat;
double dx;
double dy;
@@ -619,6 +621,15 @@ fill_scroll_event (GdkMacosDisplay *self,
g_assert (GDK_IS_MACOS_SURFACE (surface));
g_assert (nsevent != NULL);
+ phase = [nsevent phase];
+ momentumPhase = [nsevent momentumPhase];
+
+ /* Ignore kinetic scroll events from the display server as we already
+ * handle those internally.
+ */
+ if (phase == 0 && momentumPhase != 0)
+ return NULL;
+
seat = gdk_display_get_default_seat (GDK_DISPLAY (self));
pointer = gdk_seat_get_pointer (seat);
state = _gdk_macos_display_get_current_mouse_modifiers (self) |
@@ -684,19 +695,31 @@ fill_scroll_event (GdkMacosDisplay *self,
}
else
{
- g_assert (ret == NULL);
-
- ret = gdk_scroll_event_new (GDK_SURFACE (surface),
- pointer,
- NULL,
- get_time_from_ns_event (nsevent),
- state,
- -dx * 32,
- -dy * 32,
- FALSE);
+ ret = gdk_scroll_event_new_discrete (GDK_SURFACE (surface),
+ pointer,
+ NULL,
+ get_time_from_ns_event (nsevent),
+ state,
+ direction,
+ FALSE);
}
}
+ if (phase == NSEventPhaseEnded || phase == NSEventPhaseCancelled)
+ {
+ /* The user must have released their fingers in a touchpad
+ * scroll, so try to send a scroll is_stop event.
+ */
+ if (ret != NULL)
+ _gdk_event_queue_append (GDK_DISPLAY (self), g_steal_pointer (&ret));
+ ret = gdk_scroll_event_new (GDK_SURFACE (surface),
+ pointer,
+ NULL,
+ get_time_from_ns_event (nsevent),
+ state,
+ 0.0, 0.0, TRUE);
+ }
+
return g_steal_pointer (&ret);
}
diff --git a/gdk/macos/gdkmacostoplevelsurface.c b/gdk/macos/gdkmacostoplevelsurface.c
index 27289787ca..c84ebb704b 100644
--- a/gdk/macos/gdkmacostoplevelsurface.c
+++ b/gdk/macos/gdkmacostoplevelsurface.c
@@ -421,7 +421,8 @@ _gdk_macos_toplevel_surface_compute_size (GdkSurface *surface)
GDK_TOPLEVEL_STATE_RIGHT_TILED |
GDK_TOPLEVEL_STATE_BOTTOM_TILED |
GDK_TOPLEVEL_STATE_LEFT_TILED |
- GDK_TOPLEVEL_STATE_MINIMIZED))
+ GDK_TOPLEVEL_STATE_MINIMIZED) ||
+ [macos_surface->window inLiveResize])
return FALSE;
/* If we delayed a user resize until the beginning of the frame,
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index 49be97080c..1842dcd528 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -1225,16 +1225,15 @@ check_update_scrollbar_proximity (GtkScrolledWindow *sw,
}
static double
-get_scroll_unit (GtkScrolledWindow *sw,
- GtkOrientation orientation)
+get_scroll_unit (GtkScrolledWindow *sw,
+ GtkOrientation orientation,
+ GtkEventControllerScroll *scroll)
{
- double scroll_unit;
-
-#ifndef GDK_WINDOWING_MACOS
GtkScrolledWindowPrivate *priv = gtk_scrolled_window_get_instance_private (sw);
GtkScrollbar *scrollbar;
GtkAdjustment *adj;
double page_size;
+ double scroll_unit;
if (orientation == GTK_ORIENTATION_HORIZONTAL)
scrollbar = GTK_SCROLLBAR (priv->hscrollbar);
@@ -1247,8 +1246,16 @@ get_scroll_unit (GtkScrolledWindow *sw,
adj = gtk_scrollbar_get_adjustment (scrollbar);
page_size = gtk_adjustment_get_page_size (adj);
scroll_unit = pow (page_size, 2.0 / 3.0);
-#else
- scroll_unit = 1;
+
+#ifdef GDK_WINDOWING_MACOS
+ {
+ GdkEvent *event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (scroll));
+
+ if (event != NULL &&
+ gdk_event_get_event_type (event) == GDK_SCROLL &&
+ gdk_scroll_event_get_direction (event) == GDK_SCROLL_SMOOTH)
+ scroll_unit = 1;
+ }
#endif
return scroll_unit;
@@ -1396,7 +1403,7 @@ scrolled_window_scroll (GtkScrolledWindow *scrolled_window,
double scroll_unit;
adj = gtk_scrollbar_get_adjustment (GTK_SCROLLBAR (priv->hscrollbar));
- scroll_unit = get_scroll_unit (scrolled_window, GTK_ORIENTATION_HORIZONTAL);
+ scroll_unit = get_scroll_unit (scrolled_window, GTK_ORIENTATION_HORIZONTAL, scroll);
new_value = priv->unclamped_hadj_value + delta_x * scroll_unit;
_gtk_scrolled_window_set_adjustment_value (scrolled_window, adj,
@@ -1411,7 +1418,7 @@ scrolled_window_scroll (GtkScrolledWindow *scrolled_window,
double scroll_unit;
adj = gtk_scrollbar_get_adjustment (GTK_SCROLLBAR (priv->vscrollbar));
- scroll_unit = get_scroll_unit (scrolled_window, GTK_ORIENTATION_VERTICAL);
+ scroll_unit = get_scroll_unit (scrolled_window, GTK_ORIENTATION_VERTICAL, scroll);
new_value = priv->unclamped_vadj_value + delta_y * scroll_unit;
_gtk_scrolled_window_set_adjustment_value (scrolled_window, adj,
@@ -1469,8 +1476,8 @@ scroll_controller_decelerate (GtkEventControllerScroll *scroll,
shifted = (state & GDK_SHIFT_MASK) != 0;
- unit_x = get_scroll_unit (scrolled_window, GTK_ORIENTATION_HORIZONTAL);
- unit_y = get_scroll_unit (scrolled_window, GTK_ORIENTATION_VERTICAL);
+ unit_x = get_scroll_unit (scrolled_window, GTK_ORIENTATION_HORIZONTAL, scroll);
+ unit_y = get_scroll_unit (scrolled_window, GTK_ORIENTATION_VERTICAL, scroll);
if (shifted)
{
diff --git a/po/zh_CN.po b/po/zh_CN.po
index c14a7f3943..5532086bab 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -24,21 +24,22 @@
# Zamir SUN <sztsian@gmail.com>, 2016.
# Mingcong Bai <jeffbai@aosc.xyz>, 2015, 2016, 2017, 2018.
# Dingzhong Chen <wsxy162@gmail.com>, 2018-2021.
+# lumingzh <lumingzh@qq.com>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: gtk master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
-"POT-Creation-Date: 2022-01-30 15:27+0000\n"
-"PO-Revision-Date: 2022-01-30 22:45-0500\n"
-"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
+"POT-Creation-Date: 2022-02-23 03:11+0000\n"
+"PO-Revision-Date: 2022-02-24 18:47+0800\n"
+"Last-Translator: lumingzh <lumingzh@qq.com>\n"
"Language-Team: Chinese - China <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.4.3\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: Gtranslator 41.0\n"
#: gdk/broadway/gdkbroadway-server.c:135
#, c-format
@@ -68,7 +69,7 @@ msgstr "无法以“%s”提供内容"
msgid "Cannot provide contents as %s"
msgstr "无法以 %s 提供内容"
-#: gdk/gdkdisplay.c:154 gdk/gdkglcontext.c:434
+#: gdk/gdkdisplay.c:154 gdk/gdkglcontext.c:430
msgid "The current backend does not support OpenGL"
msgstr "当前后端不支持 OpenGL"
@@ -126,27 +127,27 @@ msgstr "不支持从其他应用拖放。"
msgid "No compatible formats to transfer contents."
msgstr "无兼容格式可用于传输内容。"
-#: gdk/gdkglcontext.c:336
+#: gdk/gdkglcontext.c:332
msgid "The EGL implementation does not support any allowed APIs"
msgstr "EGL 实现不支持任何允许的 API"
-#: gdk/gdkglcontext.c:417 gdk/win32/gdkglcontext-win32-wgl.c:616
+#: gdk/gdkglcontext.c:413 gdk/win32/gdkglcontext-win32-wgl.c:616
#: gdk/x11/gdkglcontext-glx.c:624
msgid "Unable to create a GL context"
msgstr "无法创建 GL 上下文"
-#: gdk/gdkglcontext.c:1270
+#: gdk/gdkglcontext.c:1273
msgid "Anything but OpenGL ES disabled via GDK_DEBUG"
msgstr "已通过 GDK_DEBUG 停用 OpenGL ES 以外的所有实现"
-#: gdk/gdkglcontext.c:1279
+#: gdk/gdkglcontext.c:1282
#, c-format
msgid "Application does not support %s API"
msgstr "应用程序不支持 %s API"
#. translators: This is about OpenGL backend names, like
#. * "Trying to use X11 GLX, but EGL is already in use"
-#: gdk/gdkglcontext.c:1800
+#: gdk/gdkglcontext.c:1803
#, c-format
msgid "Trying to use %s, but %s is already in use"
msgstr "尝试使用 %s,但 %s 已在使用"
@@ -536,17 +537,17 @@ msgctxt "keyboard label"
msgid "Suspend"
msgstr "挂起"
-#: gdk/loaders/gdkjpeg.c:61
+#: gdk/loaders/gdkjpeg.c:63
#, c-format
msgid "Error interpreting JPEG image file (%s)"
msgstr "解释 JPEG 图像文件时出错(%s)"
-#: gdk/loaders/gdkjpeg.c:188
+#: gdk/loaders/gdkjpeg.c:190
#, c-format
msgid "Unsupported JPEG colorspace (%d)"
msgstr "不支持的 JPEG 颜色空间(%d)"
-#: gdk/loaders/gdkjpeg.c:197 gdk/loaders/gdkpng.c:265 gdk/loaders/gdktiff.c:453
+#: gdk/loaders/gdkjpeg.c:199 gdk/loaders/gdkpng.c:265 gdk/loaders/gdktiff.c:453
#, c-format
msgid "Not enough memory for image size %ux%u"
msgstr "内存不足以处理尺寸为 %ux%u 的图像"
@@ -580,7 +581,7 @@ msgid "Reading data failed at row %d"
msgstr "读取第 %d 行数据失败"
#: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:231
-#: gdk/wayland/gdkdrop-wayland.c:203 gdk/wayland/gdkprimary-wayland.c:312
+#: gdk/wayland/gdkdrop-wayland.c:203 gdk/wayland/gdkprimary-wayland.c:313
#: gdk/win32/gdkdrop-win32.c:1006 gdk/win32/gdkdrop-win32.c:1051
#: gdk/x11/gdkclipboard-x11.c:787 gdk/x11/gdkdrop-x11.c:233
msgid "No compatible transfer format found"
@@ -2099,7 +2100,7 @@ msgstr "同名文件已存在"
#: gtk/gtkmountoperation.c:610 gtk/gtkpagesetupunixdialog.c:283
#: gtk/gtkprintbackend.c:642 gtk/gtkprinteroptionwidget.c:713
#: gtk/gtkprintunixdialog.c:667 gtk/gtkprintunixdialog.c:823
-#: gtk/gtkwindow.c:6226 gtk/inspector/css-editor.c:248
+#: gtk/gtkwindow.c:6147 gtk/inspector/css-editor.c:248
#: gtk/inspector/recorder.c:1706
msgid "_Cancel"
msgstr "取消(_C)"
@@ -2581,7 +2582,7 @@ msgid "%d:%02d"
msgstr "%d:%02d"
#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176
-#: gtk/gtkprintbackend.c:643 gtk/gtkwindow.c:6227
+#: gtk/gtkprintbackend.c:643 gtk/gtkwindow.c:6148
msgid "_OK"
msgstr "确定(_O)"
@@ -3477,12 +3478,12 @@ msgid "%d %%"
msgstr "%d %%"
# Chrome 那个叫检查元素,这个叫检查器也没什么问题吧。
-#: gtk/gtkwindow.c:6214
+#: gtk/gtkwindow.c:6135
#, c-format
msgid "Do you want to use GTK Inspector?"
msgstr "您是否要使用 GTK 检查器?"
-#: gtk/gtkwindow.c:6216
+#: gtk/gtkwindow.c:6137
#, c-format
msgid ""
"GTK Inspector is an interactive debugger that lets you explore and modify "
@@ -3492,7 +3493,7 @@ msgstr ""
"GTK 检查器是一个交互式的调试器,让您可以探索并修改任何 GTK 应用程序的内部构"
"造。使用它可能造成应用程序损坏或崩溃。"
-#: gtk/gtkwindow.c:6221
+#: gtk/gtkwindow.c:6142
msgid "Don’t show this message again"
msgstr "不要再显示此消息"
@@ -3663,47 +3664,47 @@ msgstr "样式类别"
msgid "CSS Property"
msgstr "CSS 属性"
-#: gtk/inspector/general.c:309 gtk/inspector/general.c:389
+#: gtk/inspector/general.c:330 gtk/inspector/general.c:410
msgctxt "GL version"
msgid "None"
msgstr "无"
-#: gtk/inspector/general.c:318
+#: gtk/inspector/general.c:339
msgctxt "GL version"
msgid "Disabled"
msgstr "已禁用"
-#: gtk/inspector/general.c:319
+#: gtk/inspector/general.c:340
msgctxt "GL vendor"
msgid "Disabled"
msgstr "已禁用"
-#: gtk/inspector/general.c:390
+#: gtk/inspector/general.c:411
msgctxt "GL vendor"
msgid "None"
msgstr "无"
-#: gtk/inspector/general.c:441
+#: gtk/inspector/general.c:462
msgctxt "Vulkan device"
msgid "Disabled"
msgstr "已禁用"
-#: gtk/inspector/general.c:442 gtk/inspector/general.c:443
+#: gtk/inspector/general.c:463 gtk/inspector/general.c:464
msgctxt "Vulkan version"
msgid "Disabled"
msgstr "已禁用"
-#: gtk/inspector/general.c:499
+#: gtk/inspector/general.c:520
msgctxt "Vulkan device"
msgid "None"
msgstr "无"
-#: gtk/inspector/general.c:500 gtk/inspector/general.c:501
+#: gtk/inspector/general.c:521 gtk/inspector/general.c:522
msgctxt "Vulkan version"
msgid "None"
msgstr "无"
-#: gtk/inspector/general.c:771
+#: gtk/inspector/general.c:792
msgid "IM Context is hardcoded by GTK_IM_MODULE"
msgstr "输入法上下文由 GTK_IM_MODULE 硬编码"
@@ -3731,39 +3732,49 @@ msgstr "媒体后端"
msgid "Input Method"
msgstr "输入法"
-#: gtk/inspector/general.ui:201
+#: gtk/inspector/general.ui:202
+#| msgid "Application"
+msgid "Application ID"
+msgstr "应用程序 ID"
+
+#: gtk/inspector/general.ui:228
+#| msgid "Resources"
+msgid "Resource Path"
+msgstr "资源路径"
+
+#: gtk/inspector/general.ui:268
msgid "Prefix"
msgstr "前缀"
-#: gtk/inspector/general.ui:403
+#: gtk/inspector/general.ui:470
msgid "Display"
msgstr "显示"
-#: gtk/inspector/general.ui:430
+#: gtk/inspector/general.ui:497
msgid "RGBA Visual"
msgstr "RGBA 视觉"
-#: gtk/inspector/general.ui:456
+#: gtk/inspector/general.ui:523
msgid "Composited"
msgstr "混成"
-#: gtk/inspector/general.ui:508
+#: gtk/inspector/general.ui:575
msgid "GL Version"
msgstr "GL 版本"
-#: gtk/inspector/general.ui:558
+#: gtk/inspector/general.ui:625
msgid "GL Vendor"
msgstr "GL 厂商"
-#: gtk/inspector/general.ui:598
+#: gtk/inspector/general.ui:665
msgid "Vulkan Device"
msgstr "Vulkan 设备"
-#: gtk/inspector/general.ui:625
+#: gtk/inspector/general.ui:692
msgid "Vulkan API version"
msgstr "Vulkan API 版本"
-#: gtk/inspector/general.ui:652
+#: gtk/inspector/general.ui:719
msgid "Vulkan driver version"
msgstr "Vulkan 驱动版本"