Projects
Eulaceura:Mainline:GA
kiran-menu
_service:obs_scm:1008-fix-tray-when-resize-icon...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:1008-fix-tray-when-resize-icon-window-it-is-necessary-to-.patch of Package kiran-menu
From 0de2a19f3935fd25dffc7e6b4931bb5c4a377d6a Mon Sep 17 00:00:00 2001 From: luoqing <luoqing@kylinsec.com.cn> Date: Tue, 27 Feb 2024 11:06:34 +0800 Subject: [PATCH 1008/1008] fix(tray):when resize icon window, it is necessary to consider the impact of the scale factor.The correct resize height is the height of the container multiplied by the scale factor of the container. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在resize icon window时,需要考虑缩放率的影响,正确的resize高度为容器的高乘以容器的缩放率 Close #30889 --- src/tray/kiran-tray.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/tray/kiran-tray.c b/src/tray/kiran-tray.c index 9744ccc..fc361d8 100644 --- a/src/tray/kiran-tray.c +++ b/src/tray/kiran-tray.c @@ -1049,15 +1049,19 @@ void kiran_tray_resize_x11_icon_window(GdkDisplay *display,Window icon_window,Gt GtkAllocation icon_allocation; gtk_widget_get_allocation(widget, &icon_allocation); - g_debug("icon container allocation height:%d",icon_allocation.height); + int scale = gtk_widget_get_scale_factor(widget); + g_debug("icon container allocation height:%d , scale:%d",icon_allocation.height, scale); /** + * NOTE: * 这里只将window的高与图标容器的高保持一致,暂不限制window的宽 (#22117) + * 匹配window的高和容器的高时,需要考虑缩放率的影响。 + * 例如缩放率设置为200%,在X协议层会对icon window的高度进行缩放 ,但是icon container容器高度没有变化 */ - if(window_attributes.height != icon_allocation.height) + if(window_attributes.height != (icon_allocation.height * scale)) { g_debug("resize X window"); - XResizeWindow(GDK_DISPLAY_XDISPLAY(display),icon_window,window_attributes.width,icon_allocation.height); + XResizeWindow(GDK_DISPLAY_XDISPLAY(display),icon_window,window_attributes.width,icon_allocation.height * scale); XFlush(GDK_DISPLAY_XDISPLAY(display)); } } -- 2.27.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2