From a1f7220e9f23ea81b5b626d20f25039724b3413e Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Sat, 20 Sep 2008 04:32:00 -0400
Subject: [PATCH] - prevent splitters "jumps" when page is loading (set style reading cookie in skin template, using new 'expression' feature)

---
 skins/default/templates/mail.html        |   17 ++++++++++++++---
 skins/default/mail.css                   |    4 ++--
 skins/default/templates/addressbook.html |   19 +++++++++++++++----
 skins/default/templates/message.html     |    7 +++++++
 4 files changed, 38 insertions(+), 9 deletions(-)

diff --git a/skins/default/mail.css b/skins/default/mail.css
index 0c10ff7..fc47d00 100644
--- a/skins/default/mail.css
+++ b/skins/default/mail.css
@@ -633,8 +633,8 @@
   background-color: #FFF;
   overflow: auto;
   /* css hack for IE */
-  width: expression((parseInt(document.documentElement.clientWidth)-220)+'px');
-  height: expression((parseInt(document.documentElement.clientHeight)-125)+'px');
+  width: expression((parseInt(this.parentNode.offsetWidth)-170)+'px');
+  height: expression((parseInt(this.parentNode.offsetHeight))+'px');
 }
 
 #printmessageframe
diff --git a/skins/default/templates/addressbook.html b/skins/default/templates/addressbook.html
index 9999477..326ded2 100644
--- a/skins/default/templates/addressbook.html
+++ b/skins/default/templates/addressbook.html
@@ -6,14 +6,25 @@
 <link rel="stylesheet" type="text/css" href="/addresses.css" />
 <script type="text/javascript" src="/splitter.js"></script>
 
-<roundcube:if condition="config:ldap_public == false" />
 <style type="text/css">
+<roundcube:if condition="config:ldap_public == false" />
 #abookcountbar { left: 20px;}
 #mainscreen { left:20px; /* IE hack */ width:expression((parseInt(document.documentElement.clientWidth)-40)+'px') }
-#addresslist { width:245px }
-#contacts-box { left:255px; /* IE hack */ width:expression((parseInt(mainscreen.offsetWidth)-255)+'px') }
-</style>
+#addresslist { width: <roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter-5 : 245" />px; }
+#contacts-box {
+    left: <roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter+5 : 255" />px;
+    /* IE hack */
+    width:expression((parseInt(mainscreen.offsetWidth)-<roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter+5 : 255" />)+'px')
+}
+<roundcube:else />
+#addresslist { width: <roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter-5 : 245" />px; }
+#contacts-box {
+    left: <roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter+5 : 255" />px;
+    /* IE hack */
+    width:expression((parseInt(mainscreen.offsetWidth)-<roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter+5 : 255" />)+'px')
+}
 <roundcube:endif />
+</style>
 
 </head>
 <body>
diff --git a/skins/default/templates/mail.html b/skins/default/templates/mail.html
index f4070e9..24f851a 100644
--- a/skins/default/templates/mail.html
+++ b/skins/default/templates/mail.html
@@ -41,11 +41,22 @@
 };
 
 </script>
-<roundcube:if condition="config:preview_pane == true" />
 <style type="text/css">
-#mailcontframe { height: 195px; }
-</style>
+<roundcube:if condition="config:preview_pane == true" />
+#mailcontframe { height: <roundcube:exp expression="!empty(cookie:mailviewsplitter) ? cookie:mailviewsplitter-5 : 195" />px; }
+#mailpreviewframe {
+    top: <roundcube:exp expression="!empty(cookie:mailviewsplitter) ? cookie:mailviewsplitter+5 : 205" />px;
+    /* css hack for IE */
+    height: expression((parseInt(this.parentNode.offsetHeight)-<roundcube:exp expression="!empty(cookie:mailviewsplitter) ? cookie:mailviewsplitter+5 : 205" />)+'px');
+}
 <roundcube:endif />
+#mailboxlist-container { width: <roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv-5 : 160" />px; }
+#mailrightcontainer {
+    left: <roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv+5 : 170" />px;
+    /* css hack for IE */
+    width: expression((parseInt(this.parentNode.offsetWidth)-<roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv+5 : 170" />)+'px');
+}
+</style>
 </head>
 <body>
 
diff --git a/skins/default/templates/message.html b/skins/default/templates/message.html
index 3ab6cf3..0cbd05f 100644
--- a/skins/default/templates/message.html
+++ b/skins/default/templates/message.html
@@ -5,6 +5,13 @@
 <roundcube:include file="/includes/links.html" />
 <link rel="stylesheet" type="text/css" href="/mail.css" />
 <script type="text/javascript" src="/splitter.js"></script>
+<style type="text/css">
+#mailboxlist-container { width: <roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv-5 : 160" />px; }
+#messageframe {
+    left: <roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv+5 : 170" />px;
+    width: expression((parseInt(this.parentNode.offsetWidth)-<roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv+5 : 170" />)+'px');
+}
+</style>
 </head>
 <body>
 

--
Gitblit v1.9.1