diff --git a/TeXmacs/misc/themes/liii.css b/TeXmacs/misc/themes/liii.css index 608d206c23..122f15f008 100644 --- a/TeXmacs/misc/themes/liii.css +++ b/TeXmacs/misc/themes/liii.css @@ -900,12 +900,25 @@ QWidget#text_toolbar { border-radius: 8px; } +/*macOS 文本工具栏窗口样式*/ +QWidget#text_toolbar[platform="mac"] { + border-radius: 6px; +} + /*文本工具栏按钮样式*/ QToolButton#text-toolbar-button { - background-color: transparent; + background-color: transparent; border: none; } +/*macOS 文本工具栏按钮样式*/ +QToolButton#text-toolbar-button[platform="mac"] { + min-width: 20px; + min-height: 20px; + max-width: 20px; + max-height: 20px; +} + /*文本工具栏按钮悬停样式*/ QToolButton#text-toolbar-button:hover { background-color: rgba(128, 128, 128, 0.3); diff --git a/TeXmacs/progs/generic/text-toolbar.scm b/TeXmacs/progs/generic/text-toolbar.scm index ba5a370b85..e49e02adc7 100644 --- a/TeXmacs/progs/generic/text-toolbar.scm +++ b/TeXmacs/progs/generic/text-toolbar.scm @@ -37,4 +37,4 @@ ((balloon (icon "tm_cell_center.xpm") "center") (make 'padded-center)) ((balloon (icon "tm_cell_right.xpm") "right aligned") - (make 'padded-right-aligned))) \ No newline at end of file + (make 'padded-right-aligned))) diff --git a/devel/201_63.md b/devel/201_63.md index 7723e3aa7f..73c9addb5f 100644 --- a/devel/201_63.md +++ b/devel/201_63.md @@ -8,6 +8,7 @@ - 选中一段文本,测试是否会弹出文本工具栏 - 点击工具栏外部,测试是否会隐藏 - 滚动页面,测试工具栏是否跟随移动 + - 额外检查macos上文本选中悬浮框尺寸是否合适 2. **显示条件测试** @@ -56,6 +57,8 @@ - 有效选区矩形计算 - 坐标转换一致性 +## 2026/3/20 针对macos特调css + ## 2026/3/13 通过 scheme 加入具体的按钮 ### What - 添加功能按键 diff --git a/src/Edit/Interface/edit_interface.cpp b/src/Edit/Interface/edit_interface.cpp index c2786bef09..5d23bb8010 100644 --- a/src/Edit/Interface/edit_interface.cpp +++ b/src/Edit/Interface/edit_interface.cpp @@ -651,7 +651,7 @@ edit_interface_rep::notify_change (int change) { if ((change & (THE_TREE | THE_SELECTION | THE_CURSOR)) != 0) manual_focus_set (path (), (change & THE_TREE) != 0); // 选区变化时,使文本工具栏缓存失效 - // 输入字符时选区变化会触发 THE_SELECTION,进而隐藏工具栏 + // 输入字符时选区变化会触发 THE_SELECTION,进而使工具栏缓存失效并隐藏 if ((change & THE_SELECTION) != 0) invalidate_text_toolbar_cache (); } diff --git a/src/Plugins/Qt/QTMTextToolbar.cpp b/src/Plugins/Qt/QTMTextToolbar.cpp index 51d045cae2..7969b74b24 100644 --- a/src/Plugins/Qt/QTMTextToolbar.cpp +++ b/src/Plugins/Qt/QTMTextToolbar.cpp @@ -49,6 +49,9 @@ QTMTextToolbar::QTMTextToolbar (QWidget* parent, qt_simple_widget_rep* owner) setAttribute (Qt::WA_ShowWithoutActivating); setMouseTracking (true); setFocusPolicy (Qt::NoFocus); +#if defined(Q_OS_MAC) + setProperty ("platform", "mac"); +#endif layout= new QHBoxLayout (this); layout->setContentsMargins (0, 0, 0, 0); layout->setSizeConstraint (QLayout::SetMinimumSize); @@ -126,6 +129,9 @@ QTMTextToolbar::rebuildButtonsFromScheme () { button->setAutoRaise (true); button->setDefaultAction (action); button->setPopupMode (QToolButton::InstantPopup); +#if defined(Q_OS_MAC) + button->setProperty ("platform", "mac"); +#endif if (tm_style_sheet == "") button->setStyle (qtmstyle ()); layout->addWidget (button); } @@ -286,11 +292,7 @@ QTMTextToolbar::autoSize () { Scale * cached_magf * 12.0; // 原始3.0倍,扩大4倍后为12.0倍 int btn_size; -#if defined(Q_OS_MAC) - btn_size= int (50 * totalScale); -#else btn_size= int (40 * totalScale); -#endif if (cached_magf <= 0.16) { btn_size= 25;