diff --git a/rtdata/themes/RawTherapee-GTK3-20_.css b/rtdata/themes/RawTherapee-GTK3-20_.css index 32efbb41f..45dec6e39 100644 --- a/rtdata/themes/RawTherapee-GTK3-20_.css +++ b/rtdata/themes/RawTherapee-GTK3-20_.css @@ -1225,11 +1225,12 @@ dialog frame > label:not(.dummy) { border-top-width: 0.083333333333333333em; } #Navigator { - padding-top: 0.75em; + padding-top: 0.25em; padding-bottom: 0.25em; } #Navigator label { padding: 0; + margin: 0.083333333333333333em 0; } /*** PartialPaste ******************************************************************************/ diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index a3214b45c..3ed352c74 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -2,7 +2,7 @@ This file is part of RawTherapee. Copyright (c) 2016-2019 TooWaBoo - Version 3.05 + Version 3.06 RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -163,7 +163,7 @@ undershoot { label { padding: 0.083333333333333333em 0; - margin: 0.19em; + margin: 0.125em 0.166666666666666666em; min-height: 1.333333333333333333em; } @@ -1341,7 +1341,7 @@ button, #BeforeAfterContainer button { min-height: 1.666666666666666666em; min-width: 1.666666666666666666em;/*x*/ - margin: 0.19em; + margin: 0.125em; border-radius: 0.2em; border: 0.083333333333333333em solid @bg-button-border; background-color: transparent; @@ -1414,7 +1414,7 @@ combobox entry.combo + button.combo { } #WB-Size-Helper { min-width: 3.5em; - margin: 0.19em; + margin: 0.125em; } combobox arrow { @@ -1536,9 +1536,9 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #RightNotebook > stack > scrolledwindow:last-child button.image-button, /* Fast Export */ #MetaPanelNotebook scrolledwindow + grid > button, #MetaPanelNotebook scrolledwindow + grid + grid > button { - min-height: 2.5em; - min-width: 2.5em; - margin: 0 0.19em; + min-height: 2.333333333333333333em; + min-width: 2.333333333333333333em; + margin: 0 0.125em; } #ToolBarPanelFileBrowser > button:first-child, #EditorTopPanel > button:first-child, @@ -1558,39 +1558,35 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #MyExpander button.independent.toggle:not(.image-button):not(.text-button):first-child:only-child, /* Graduated filter button */ #MetaPanelNotebook scrolledwindow + grid > button, #MetaPanelNotebook scrolledwindow + grid + grid > button { - margin: 0.19em; + margin: 0.125em; } #EditorTopPanel button.narrowbutton { - min-width: 0.833333333333333333em; - padding: 0 0.166666666666666666em; + min-width: 0; + padding: 0 0.13em; } /* Image close button */ #MainNotebook > header tab #CloseButton { - padding: 0; - margin: 0.333333333333333333em 0 0.416666666666666666em 0.19em; - min-width: 1.5em; + padding: 0.166666666666666666em; + margin: 0.333333333333333333em 0 0.5em 0.19em; + min-width: 0; min-height: 0; } -#MainNotebook > header tab #CloseButton image{ - min-width: 1.333333333333333333em; - min-height: 1.333333333333333333em; -} /* Filter buttons*/ #ToolBarPanelFileBrowser .smallbuttonbox { - min-height: 1.333333333333333333em; + min-height: 0; padding: 0; margin: 0; } #ToolBarPanelFileBrowser .smallbuttonbox:nth-child(2) { - margin: 0.083333333333333333em 0 -0.166666666666666666em; + margin-top: 0.12em; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image { - margin: -0.19em; - min-width: 1.333333333333333333em; - min-height: 1.333333333333333333em; + margin: -0.12em; + min-width: 0; + min-height: 0; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton { min-height: 0; @@ -1806,7 +1802,7 @@ popover button.text-button:active { checkbutton, radiobutton { padding: 0.083333333333333333em 0; - margin: 0.19em; + margin: 0.125em; min-height: 1.666666666666666666em;/*x*/ } @@ -1847,10 +1843,10 @@ frame > checkbutton check{ #PartialPaste checkbutton { padding: 0; - margin: 0.19em 0 0 0.583333333333333333em; + margin: 0 0 0 0.583333333333333333em; } #PartialPaste checkbutton:not(#PartialPasteHeader) { - margin: 0 0 0 1.166666666666666666em; + margin: 0 0 0 1.125em; } /*** end ***************************************************************************************/ @@ -1859,7 +1855,7 @@ frame > checkbutton check{ #MyExpander entry, entry, spinbutton { - margin: 0.19em; + margin: 0.125em; padding: 0 0.333333333333333333em; min-height: 1.666666666666666666em;/*x*/ min-width: 0; @@ -1891,7 +1887,7 @@ spinbutton { } #MyExpander spinbutton { - margin: 0.19em; + margin: 0.125em; padding: 0; min-height: 1.333333333333333333em; min-width: 0; @@ -1904,12 +1900,12 @@ spinbutton { } /* Needed for Reset & and Auto button height*/ #MyExpander button + label + spinbutton { - margin-top: 0.333333333333333333em; - margin-bottom: 0.333333333333333333em; + margin-top: 0.25em; + margin-bottom: 0.25em; } #MyExpander checkbutton + label + spinbutton { - margin-top: 0.416666666666666666em; - margin-bottom: 0.416666666666666666em; + margin-top: 0.333333333333333333em; + margin-bottom: 0.333333333333333333em; } /**/ diff --git a/rtdata/themes/size.css b/rtdata/themes/size.css index 86d2eaea5..f333ceeb0 100644 --- a/rtdata/themes/size.css +++ b/rtdata/themes/size.css @@ -297,7 +297,7 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { #MyExpander image { min-width: 1.333333333333333333em; min-height: 0; - margin: -0.083333333333333333em 0.19em; + margin: -0.083333333333333333em 0.125em; } #MyExpander .drawingarea:not(.slider) { @@ -456,7 +456,7 @@ button, #BeforeAfterContainer button { min-height: 1.666666666666666666em; min-width: 1.666666666666666666em;/*x*/ - margin: 0.19em; + margin: 0.125em; border-radius: 0.2em; border-width: 0.083333333333333333em; } @@ -482,7 +482,7 @@ combobox entry.combo + button.combo { } #WB-Size-Helper { min-width: 3.5em; - margin: 0.19em; + margin: 0.125em; } combobox arrow { @@ -570,7 +570,7 @@ colorchooser colorswatch#add-color-button:first-child { button.font label{ min-height: 0; min-width: 0; - margin: 0 0.19em; + margin: 0 0.125em; } /* Save, Cancel, OK ... buttons */ @@ -603,9 +603,9 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #RightNotebook > stack > scrolledwindow:last-child button.image-button, /* Fast Export */ #MetaPanelNotebook scrolledwindow + grid > button, #MetaPanelNotebook scrolledwindow + grid + grid > button { - min-height: 2.5em; - min-width: 2.5em; - margin: 0 0.19em; + min-height: 2.333333333333333333em; + min-width: 2.333333333333333333em; + margin: 0 0.125em; } #ToolBarPanelFileBrowser > button:first-child, #EditorTopPanel > button:first-child, @@ -625,12 +625,12 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #MyExpander button.independent.toggle:not(.image-button):not(.text-button):first-child:only-child, /* Graduated filter button */ #MetaPanelNotebook scrolledwindow + grid > button, #MetaPanelNotebook scrolledwindow + grid + grid > button { - margin: 0.19em; + margin: 0.125em; } #EditorTopPanel button.narrowbutton { min-width: 0.833333333333333333em; - padding: 0 0.166666666666666666em; + padding: 0 0.13em; } /* Image close button */ @@ -647,21 +647,21 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { /* Filter buttons*/ #ToolBarPanelFileBrowser .smallbuttonbox { - min-height: 1.333333333333333333em; + min-height: 0; padding: 0; margin: 0; } #ToolBarPanelFileBrowser .smallbuttonbox:nth-child(2) { - margin: 0.083333333333333333em 0 -0.166666666666666666em; + margin: 0 0 -0.166666666666666666em; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image { - margin: -0.19em; - min-width: 1.333333333333333333em; - min-height: 1.333333333333333333em; + margin: -0.166666666666666666em; + min-width: 0; + min-height: 0; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton { min-height: 0; - min-width: 1.333333333333333333em; + min-width: 1.166666666666666666em; padding: 0; margin: 0 0.25em; border: none; @@ -686,7 +686,7 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #MyExpander .image-combo button.Left { border-top-right-radius: 0; border-bottom-right-radius: 0; - min-width: 2.5em; + min-width: 2.333333333333333333em; margin-right: 0; } #MyExpander .image-combo button.Left { @@ -820,7 +820,7 @@ button.text-button { checkbutton, radiobutton { padding: 0.083333333333333333em 0; - margin: 0.19em; + margin: 0.125em; min-height: 1.666666666666666666em;/*x*/ } @@ -852,7 +852,7 @@ frame > checkbutton check{ #PartialPaste checkbutton { padding: 0; - margin: 0.19em 0 0 0.583333333333333333em; + margin: 0.125em 0 0 0.583333333333333333em; } #PartialPaste checkbutton:not(#PartialPasteHeader) { margin: 0 0 0 1.166666666666666666em; @@ -864,7 +864,7 @@ frame > checkbutton check{ #MyExpander entry, entry, spinbutton { - margin: 0.19em; + margin: 0.125em; padding: 0 0.333333333333333333em; min-height: 1.666666666666666666em;/*x*/ min-width: 0; @@ -894,7 +894,7 @@ spinbutton { } #MyExpander spinbutton { - margin: 0.19em; + margin: 0.125em; padding: 0; min-height: 1.333333333333333333em; min-width: 0; diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt index 165f30d8a..cdb8749bf 100644 --- a/rtgui/CMakeLists.txt +++ b/rtgui/CMakeLists.txt @@ -236,7 +236,8 @@ else() ) endif() -if(OPENMP_FOUND AND NOT APPLE) +# Excluding libatomic needed by Clang/FreeBSD, #3636 +if(OPENMP_FOUND AND NOT APPLE AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") set(EXTRA_LIB_RTGUI ${EXTRA_LIB_RTGUI} "atomic") endif() diff --git a/rtgui/rtimage.cc b/rtgui/rtimage.cc index cc734456e..6a289ead6 100644 --- a/rtgui/rtimage.cc +++ b/rtgui/rtimage.cc @@ -120,6 +120,10 @@ void RTImage::changeImage (const Glib::ustring& imageName) { clear (); + if (imageName.empty()) { + return; + } + if (pixbuf) { auto iterator = pixbufCache.find (imageName); assert(iterator != pixbufCache.end ()); @@ -169,6 +173,17 @@ void RTImage::init() scaleBack = RTScalable::getScale(); } +void RTImage::cleanup() +{ + for (auto& entry : pixbufCache) { + entry.second.reset(); + } + for (auto& entry : surfaceCache) { + entry.second.clear(); + } + RTScalable::cleanup(); +} + void RTImage::updateImages() { for (auto& entry : pixbufCache) { diff --git a/rtgui/rtimage.h b/rtgui/rtimage.h index 481772ad6..5679f6edc 100644 --- a/rtgui/rtimage.h +++ b/rtgui/rtimage.h @@ -52,6 +52,7 @@ public: static void init(); + static void cleanup(); static void updateImages (); static void setDPInScale (const double newDPI, const int newScale); static void setScale (const int newScale); diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index f5e57cce9..3ef1c6b72 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -463,7 +463,7 @@ RTWindow::~RTWindow() delete fpanel; } - RTScalable::cleanup(); + RTImage::cleanup(); } void RTWindow::on_realize ()