5 Star 0 Fork 17

src-openEuler/caja

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0003-Fix-the-background-image-can-not-draw-all-when-rotat.patch 2.36 KB
一键复制 编辑 原始数据 按行查看 历史
From 84bd5f2ea9d84094b5a2b0cba2eab9b8c3116c53 Mon Sep 17 00:00:00 2001
From: wangxiaoqing <wangxiaoqing@kylinsec.com.cn>
Date: Thu, 28 Jul 2022 14:00:58 +0800
Subject: [PATCH 3/4] Fix the background image can not draw all when rotating
screen
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复旋转屏幕90°时,一半屏幕无法正常显示
Related #I5I2U6
Signed-off-by: wangxiaoqing <wangxiaoqing@kylinsec.com.cn>
---
src/caja-desktop-window.c | 37 +++++++++++++++++++++++++++++++++++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/src/caja-desktop-window.c b/src/caja-desktop-window.c
index 36ae52c..97b5a0b 100644
--- a/src/caja-desktop-window.c
+++ b/src/caja-desktop-window.c
@@ -148,17 +148,50 @@ caja_desktop_window_update_directory (CajaDesktopWindow *window)
g_object_unref (location);
}
+static void
+calculate_screen_size (GdkScreen *screen,
+ int *width,
+ int *height)
+{
+ GdkDisplay *display;
+ gint monitors;
+ gint i, x1, y1, x2, y2;
+
+ display = gdk_screen_get_display (screen);
+ monitors = gdk_display_get_n_monitors (display);
+
+ x1 = y1 = G_MAXINT;
+ x2 = y2 = G_MININT;
+
+ for (i = 0; i < monitors; i++)
+ {
+ GdkMonitor *monitor = gdk_display_get_monitor (display, i);
+ GdkRectangle geometry;
+
+ gdk_monitor_get_geometry (monitor, &geometry);
+ x1 = MIN (x1, geometry.x);
+ y1 = MIN (y1, geometry.y);
+ x2 = MAX (x2, geometry.x + geometry.width);
+ y2 = MAX (y2, geometry.y + geometry.height);
+ }
+
+ *width = x2 - x1;
+ *height = y2 - y1;
+}
+
static void
caja_desktop_window_screen_size_changed (GdkScreen *screen,
CajaDesktopWindow *window)
{
int width_request, height_request;
int scale;
+ int screen_width, screen_height;
scale = gdk_window_get_scale_factor (gdk_screen_get_root_window (screen));
- width_request = WidthOfScreen (gdk_x11_screen_get_xscreen (screen)) / scale;
- height_request = HeightOfScreen (gdk_x11_screen_get_xscreen (screen)) / scale;
+ calculate_screen_size (screen, &screen_width, &screen_height);
+ width_request = screen_width / scale;
+ height_request = screen_height / scale;
g_object_set (window,
"width_request", width_request,
--
2.36.1
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/src-openeuler/caja.git
git@gitee.com:src-openeuler/caja.git
src-openeuler
caja
caja
master

搜索帮助