Hello,
I wrote a small patch that makes twin-deKorator take into account the sizes of the '[left|right]BottomsFrameBg.png' and '[left|right]BottomFrameBg.png' to determine the lower resize handles, since on most themes those tend to end up quite small.
This also allows having usable resize handles even if some borders are small (e.g. 1px frames, depending on the image sizes, don't automatically result in 1px small handles, enabling *box-style themes).
The patch:
--- deKoratorclient.cpp 2025-02-19 19:46:49.126353500 +0100
+++ deKoratorclient_new_resize_handle_sizing.cpp 2025-02-22 09:57:55.272956410 +0100
@@ -2219,37 +2219,39 @@
else if ( point.y() >= ( height() - BUTTOMFRAMESIZE ) )
{
// inside handle
- if ( point.x() <= LEFTFRAMESIZE )
+ if ( point.x() <= std::max( LEFTBOTTOMFRAMEWIDTH, LEFTFRAMESIZE ) )
pos = PositionBottomLeft;
- else if ( point.x() >= ( width() - RIGHTFRAMESIZE ) )
+ else if ( point.x() >= ( width() - std::max( RIGHTBOTTOMFRAMEWIDTH, RIGHTFRAMESIZE ) ) )
pos = PositionBottomRight;
else
pos = PositionBottom;
}
- else if ( point.x() <= LEFTFRAMESIZE )
- {
- // on left frame
- if ( point.y() <= TITLESIZE )
- pos = PositionTopLeft;
- else if ( point.y() >= ( height() - BUTTOMFRAMESIZE ) )
- pos = PositionBottomLeft;
- else
- pos = PositionLeft;
- }
- else if ( point.x() >= width() - RIGHTFRAMESIZE )
- {
- // on right frame
- if ( point.y() <= TITLESIZE )
- pos = PositionTopRight;
- else if ( point.y() >= ( height() - BUTTOMFRAMESIZE ) )
- pos = PositionBottomRight;
+ else {
+ if ( point.x() <= LEFTFRAMESIZE )
+ {
+ // on left frame
+ if ( point.y() <= TITLESIZE )
+ pos = PositionTopLeft;
+ else if ( point.y() >= ( height() - BOTTOMLEFTFRAMEHEIGHT - BUTTOMFRAMESIZE ) )
+ pos = PositionBottomLeft;
+ else
+ pos = PositionLeft;
+ }
+ else if ( point.x() >= width() - RIGHTFRAMESIZE )
+ {
+ // on right frame
+ if ( point.y() <= TITLESIZE )
+ pos = PositionTopRight;
+ else if ( point.y() >= ( height() - BOTTOMRIGHTFRAMEHEIGHT - BUTTOMFRAMESIZE ) )
+ pos = PositionBottomRight;
+ else
+ pos = PositionRight;
+ }
else
- pos = PositionRight;
- }
- else
- {
- // inside the frame
- pos = PositionCenter;
+ {
+ // inside the frame
+ pos = PositionCenter;
+ }
}
return pos;
Best regards,
Daniel