mirror of
https://github.com/cookiengineer/audacity
synced 2025-12-04 07:40:12 +01:00
Calculate icon size rather than ask for it on GTK and limit width
When requesting The icon size (under Gnome at least), the size was overly large, so use the wxMac method and just estimate what it will be. And, limit the column widths so the dialog doesn't grow wider than the screen width.
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
#include <wx/defs.h>
|
#include <wx/defs.h>
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
#include <wx/dir.h>
|
#include <wx/dir.h>
|
||||||
|
#include <wx/display.h>
|
||||||
#include <wx/dynarray.h>
|
#include <wx/dynarray.h>
|
||||||
#include <wx/dynlib.h>
|
#include <wx/dynlib.h>
|
||||||
#include <wx/hashmap.h>
|
#include <wx/hashmap.h>
|
||||||
@@ -682,10 +683,8 @@ void PluginRegistrationDialog::RegenerateEffectsList( int iShowWhat )
|
|||||||
// Only need to get the icon width once
|
// Only need to get the icon width once
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
{
|
{
|
||||||
#if defined(__WXMAC__)
|
#if defined(__WXMAC__) || defined(__WXGTK__)
|
||||||
// wxMac doesn't return the ICON rectangle. It returns the
|
// wxMac and wxGtk do not return a valid width.
|
||||||
// rectangle for the first column and that even comes back
|
|
||||||
// with negative numbers sometimes.
|
|
||||||
//
|
//
|
||||||
// So, just guess.
|
// So, just guess.
|
||||||
wxIcon i1(unchecked_xpm);
|
wxIcon i1(unchecked_xpm);
|
||||||
@@ -704,6 +703,14 @@ void PluginRegistrationDialog::RegenerateEffectsList( int iShowWhat )
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(__WXGTK__)
|
||||||
|
// Keep dialog from getting too wide
|
||||||
|
wxDisplay d(wxDisplay::GetFromWindow(GetParent()));
|
||||||
|
int w = d.GetGeometry().GetWidth() - 100;
|
||||||
|
iNameLen = wxMin(iNameLen, w);
|
||||||
|
iPathLen = wxMin(iPathLen, w - iNameLen);
|
||||||
|
#endif
|
||||||
|
|
||||||
mEffects->SortItems(SortCompare, 0);
|
mEffects->SortItems(SortCompare, 0);
|
||||||
for(i=0;i<mEffects->GetItemCount();i++)
|
for(i=0;i<mEffects->GetItemCount();i++)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user