From 7dca45e8b4aa53373b8d5a3ac390da48d08ca6d6 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Thu, 2 Aug 2012 21:06:30 +0200 Subject: Fix overflow of compose attachments list in Opera and IE7 browsers --- skins/classic/iehacks.css | 10 ++++++++++ skins/classic/mail.css | 3 +-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/skins/classic/iehacks.css b/skins/classic/iehacks.css index d09be3d80..2bd3ce865 100644 --- a/skins/classic/iehacks.css +++ b/skins/classic/iehacks.css @@ -150,6 +150,16 @@ body.iframe div.messageheaderbox height: expression((parseInt(this.parentNode.offsetHeight)-1-parseInt(document.getElementById('compose-headers').offsetHeight))+'px'); } +#compose-attachments ul li +{ + width: 1000px; /* for IE7 */ +} + +#compose-attachments li a +{ + float: left; /* for IE7 */ +} + #messagelist { width: inherit; diff --git a/skins/classic/mail.css b/skins/classic/mail.css index cf7b69a38..c38d7448c 100644 --- a/skins/classic/mail.css +++ b/skins/classic/mail.css @@ -1485,8 +1485,7 @@ input.from_address text-indent: -5000px; width: 17px; height: 16px; - display: block; - float: left; + display: inline-block; text-decoration: none; } -- cgit v1.2.3 From 1257dd6796b0655545bb7e4e4dd6d776bebd8544 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 3 Aug 2012 09:51:41 +0200 Subject: Add generic mobile browser detection, enable touch events for all mobile browsers --- program/js/common.js | 4 ++++ program/js/list.js | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/program/js/common.js b/program/js/common.js index 70e435ef1..fdef3453e 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -83,6 +83,7 @@ function roundcube_browser() if (this.safari && (/;\s+([a-z]{2})-[a-z]{2}\)/.test(this.agent_lc))) this.lang = RegExp.$1; + this.mobile = this.agent_lc.match(/iphone|ipad|ipod|android|blackberry|iemobile|opera mini|opera mobi/); this.dhtml = ((this.ie4 && this.win) || this.ie5 || this.ie6 || this.ns4 || this.mz); this.vml = (this.win && this.ie && this.dom && !this.opera); this.pngalpha = (this.mz || (this.opera && this.vendver >= 6) || (this.ie && this.mac && this.vendver >= 5) || @@ -124,6 +125,9 @@ function roundcube_browser() else if (this.safari || this.chrome) classname += ' webkit'; + if (this.mobile) + classname += ' mobile'; + if (document.documentElement) document.documentElement.className += classname; }; diff --git a/program/js/list.js b/program/js/list.js index e3be9a050..b194721f4 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -112,7 +112,7 @@ init_row: function(row) row.onmousedown = function(e){ return self.drag_row(e, this.uid); }; row.onmouseup = function(e){ return self.click_row(e, this.uid); }; - if (bw.iphone || bw.ipad) { + if (bw.mobile) { row.addEventListener('touchstart', function(e) { if (e.touches.length == 1) { if (!self.drag_row(rcube_event.touchevent(e.touches[0]), this.uid)) @@ -313,7 +313,7 @@ drag_row: function(e, id) this.drag_mouse_start = rcube_event.get_mouse_pos(e); rcube_event.add_listener({event:'mousemove', object:this, method:'drag_mouse_move'}); rcube_event.add_listener({event:'mouseup', object:this, method:'drag_mouse_up'}); - if (bw.iphone || bw.ipad) { + if (bw.mobile) { rcube_event.add_listener({event:'touchmove', object:this, method:'drag_mouse_move'}); rcube_event.add_listener({event:'touchend', object:this, method:'drag_mouse_up'}); } @@ -1220,7 +1220,7 @@ drag_mouse_move: function(e) drag_mouse_up: function(e) { document.onmousemove = null; - + if (e.type == 'touchend') { if (e.changedTouches.length != 1) return rcube_event.cancel(e); @@ -1239,8 +1239,8 @@ drag_mouse_up: function(e) rcube_event.remove_listener({event:'mousemove', object:this, method:'drag_mouse_move'}); rcube_event.remove_listener({event:'mouseup', object:this, method:'drag_mouse_up'}); - - if (bw.iphone || bw.ipad) { + + if (bw.mobile) { rcube_event.remove_listener({event:'touchmove', object:this, method:'drag_mouse_move'}); rcube_event.remove_listener({event:'touchend', object:this, method:'drag_mouse_up'}); } -- cgit v1.2.3