Kaydet (Commit) e2197919 authored tarafından Tor Lillqvist's avatar Tor Lillqvist

Further tweaks that affect the "tunnelled" dialogs in the iOS app

The bestmaxFrameSizeForScreenSize() function is full of magic numbers.
(There originally, in OOo times, was a comment in there that said
"fill in holy default values brought to us by product management"
which says it all, really.) Those numbers have little or no relevance
on iOS. Instead, make this function return the largest square that
will fit on the display (square so that it will fit in either
orientation, in case the device is rotated while a tunnelled dialog is
displayed).

And as a consequence the defaut font size on iOS can be bumped up a
bit, to 10. Now the problematic dialogs look even better.

Note that this is a cherry-pick from our vendor branch (cp-6.0). It
hasn't actually been tested as the iOS app doesn't work at the moment
if built from the master branches of online and core.

Change-Id: I043d8f9947520adb04bd952ee49f9c7844a1fa8c
üst 2292a5dd
......@@ -28,7 +28,7 @@
#include <vcl/layout.hxx>
#include <vcl/settings.hxx>
// Horrible hack
// Totally wrong of course but doesn't seem to harm much in the iOS app.
static int viewWidth = 1, viewHeight = 1;
class IosSalData : public GenericUnixSalData
......@@ -107,7 +107,7 @@ public:
virtual void UpdateSettings( AllSettings &rSettings ) override
{
// Clobber the UI fonts
vcl::Font aFont( OUString::fromUtf8( [[[UIFont systemFontOfSize:7] familyName] UTF8String] ), Size( 0, 7 ) );
vcl::Font aFont( OUString::fromUtf8( [[[UIFont systemFontOfSize:10] familyName] UTF8String] ), Size( 0, 10 ) );
StyleSettings aStyleSet = rSettings.GetStyleSettings();
aStyleSet.SetAppFont( aFont );
......
......@@ -19,6 +19,12 @@
#include <config_features.h>
#ifdef IOS
#include <premac.h>
#include <UIKit/UIKit.h>
#include <postmac.h>
#endif
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/util/thePathSettings.hpp>
#include <com/sun/star/frame/theGlobalEventBroadcaster.hpp>
......@@ -705,6 +711,7 @@ bool Dialog::EventNotify( NotifyEvent& rNEvt )
//taskbar, menus, etc.
Size bestmaxFrameSizeForScreenSize(const Size &rScreenSize)
{
#ifndef IOS
long w = rScreenSize.Width();
if (w <= 800)
w -= 15;
......@@ -721,6 +728,19 @@ Size bestmaxFrameSizeForScreenSize(const Size &rScreenSize)
return Size(std::max<long>(w, 640 - 15),
std::max<long>(h, 480 - 50));
#else
// Don't bother with ancient magic numbers of unclear relevance on non-desktop apps anyway. It
// seems that at least currently in the iOS app, this function is called just once per dialog,
// with a rScreenSize parameter of 1x1 (!). This would lead to always returning 625x430 which is
// a bit random and needlessly small on an iPad at least. We want something that closely will
// just fit on the display in either orientation.
// We ignore the rScreenSize as it will be the dummy 1x1 from iosinst.cxx (see "Totally wrong of course").
(void) rScreenSize;
const int n = std::min<CGFloat>([[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height);
return Size(n-10, n-10);
#endif
}
void Dialog::SetInstallLOKNotifierHdl(const Link<void*, vcl::ILibreOfficeKitNotifier*>& rLink)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment