From 231b26fcb73b5ed6a0752fbc3b63188fdade8597 Mon Sep 17 00:00:00 2001 From: Mirek Fidler Date: Thu, 1 Jan 2026 17:44:14 +0100 Subject: [PATCH] MaxMinimize on titlebar doubleclick --- uppsrc/CtrlCore/CtrlMouse.cpp | 2 +- uppsrc/CtrlCore/GtkCustomBar.cpp | 8 +++++++- uppsrc/CtrlCore/GtkTop.h | 5 ++++- .../CustomTitlebar1.upp} | 0 upptst/{CustomTitlebar => CustomTitlebar1}/main.cpp | 0 5 files changed, 12 insertions(+), 3 deletions(-) rename upptst/{CustomTitlebar/CustomTitlebar.upp => CustomTitlebar1/CustomTitlebar1.upp} (100%) rename upptst/{CustomTitlebar => CustomTitlebar1}/main.cpp (100%) diff --git a/uppsrc/CtrlCore/CtrlMouse.cpp b/uppsrc/CtrlCore/CtrlMouse.cpp index 42a3d27ca..4d07ceec3 100644 --- a/uppsrc/CtrlCore/CtrlMouse.cpp +++ b/uppsrc/CtrlCore/CtrlMouse.cpp @@ -2,7 +2,7 @@ namespace Upp { -#define LLOG(x) // DLOG(x) +#define LLOG(x) DLOG(x) Ptr Ctrl::eventCtrl; Ptr Ctrl::mouseCtrl; diff --git a/uppsrc/CtrlCore/GtkCustomBar.cpp b/uppsrc/CtrlCore/GtkCustomBar.cpp index d5ea1e9e9..1de3f6bd9 100644 --- a/uppsrc/CtrlCore/GtkCustomBar.cpp +++ b/uppsrc/CtrlCore/GtkCustomBar.cpp @@ -36,6 +36,12 @@ void TopWindow::CustomBarIcon::MouseLeave() Refresh(); } +void TopWindow::BarCtrl::LeftDouble(Point p, dword keyflags) +{ + DLOG("HERE!"); + WhenAction(); +} + void TopWindow::Init() { custom_titlebar_metrics__ = [](const TopWindow *tw, TopWindow::CustomTitleBarMetrics& m) { @@ -124,7 +130,7 @@ Ctrl *TopWindow::MakeCustomTitleBar__(Color bk, int mincy) if(w) gtk_window_iconify(w); }; - maxicon << [=] { + *custom_bar ^= maxicon ^= [=] { GtkWindow *w = gtk(); if(w) { if(gtk_window_is_maximized(w)) diff --git a/uppsrc/CtrlCore/GtkTop.h b/uppsrc/CtrlCore/GtkTop.h index d90d94acc..8760635ba 100644 --- a/uppsrc/CtrlCore/GtkTop.h +++ b/uppsrc/CtrlCore/GtkTop.h @@ -14,10 +14,13 @@ void Set(const Image& m) { if(!m.IsSame(img)) { img = m; Refresh(); }} }; + struct BarCtrl : public Ctrl { + void LeftDouble(Point p, dword keyflags) override; + }; One> custom_bar_frame; One> custom_bar_icons; - One custom_bar; + One custom_bar; CustomBarIcon minicon, maxicon, closeicon; Color custom_titlebar_bk = SColorFace(); int custom_titlebar_cy = -1; diff --git a/upptst/CustomTitlebar/CustomTitlebar.upp b/upptst/CustomTitlebar1/CustomTitlebar1.upp similarity index 100% rename from upptst/CustomTitlebar/CustomTitlebar.upp rename to upptst/CustomTitlebar1/CustomTitlebar1.upp diff --git a/upptst/CustomTitlebar/main.cpp b/upptst/CustomTitlebar1/main.cpp similarity index 100% rename from upptst/CustomTitlebar/main.cpp rename to upptst/CustomTitlebar1/main.cpp