diff --git a/htdocs/css/openwebrx.css b/htdocs/css/openwebrx.css
index 127e8f4..a18e632 100644
--- a/htdocs/css/openwebrx.css
+++ b/htdocs/css/openwebrx.css
@@ -245,13 +245,9 @@ input[type=range]:focus::-ms-fill-upper
#webrx-canvas-container
{
- /*background-image:url('../gfx/openwebrx-blank-background-1.jpg');*/
position: relative;
height: 2000px;
- overflow-y: scroll;
- overflow-x: hidden;
- /*background-color: #646464;*/
- /*background-image: -webkit-linear-gradient(top, rgba(247,247,247,1) 0%, rgba(0,0,0,1) 100%);*/
+ overflow: hidden;
background-image: url('../gfx/openwebrx-background-cool-blue.png');
background-repeat: no-repeat;
background-color: #1e5f7f;
@@ -273,20 +269,6 @@ input[type=range]:focus::-ms-fill-upper
display: none;
}
-#openwebrx-phantom-canvas
-{
- position: absolute;
- width: 0px;
- height: 0px;
-}
-
-/*#openwebrx-canvas-gradient-background
-{
- overflow: hidden;
- width: 100%;
- height: 396px;
-}*/
-
#openwebrx-log-scroll
{
/*overflow-y:auto;*/
diff --git a/htdocs/index.html b/htdocs/index.html
index 7b39ad6..e098ec1 100644
--- a/htdocs/index.html
+++ b/htdocs/index.html
@@ -43,7 +43,6 @@
diff --git a/htdocs/openwebrx.js b/htdocs/openwebrx.js
index 6534d5a..539ce6f 100644
--- a/htdocs/openwebrx.js
+++ b/htdocs/openwebrx.js
@@ -497,6 +497,8 @@ function demodulator_default_analog(offset_frequency,subtype)
this.color,center_freq+this.parent.offset_frequency);
};
+ this.envelope.dragged_range = demodulator.draggable_ranges.none;
+
// event handlers
this.envelope.drag_start=function(x, key_modifiers)
{
@@ -649,6 +651,8 @@ function scale_setup()
scale_canvas.addEventListener("mousemove", scale_canvas_mousemove, false);
scale_canvas.addEventListener("mouseup", scale_canvas_mouseup, false);
resize_scale();
+ var frequency_container = e("openwebrx-frequency-container");
+ frequency_container.addEventListener("mousemove", frequency_container_mousemove, false);
}
var scale_canvas_drag_params={
@@ -698,14 +702,18 @@ function scale_canvas_mousemove(evt)
}
+function frequency_container_mousemove(evt) {
+ var frequency = center_freq + scale_offset_freq_from_px(evt.pageX);
+ e("webrx-mouse-freq").innerHTML = format_frequency("{x} MHz", frequency, 1e6, 4);
+}
+
function scale_canvas_end_drag(x)
{
- canvas_container.style.cursor="default";
+ scale_canvas.style.cursor="default";
scale_canvas_drag_params.drag=false;
scale_canvas_drag_params.mouse_down=false;
var event_handled=false;
for (var i=0;imaxX) realX=maxX;
- if(realX<0) realX=0;
- element.style.left=realX.toString()+"px";*/
+ relativeX = get_relative_x(evt);
if(canvas_mouse_down)
{
if(!canvas_drag&&Math.abs(evt.pageX-canvas_drag_start_x)>canvas_drag_min_delta)
@@ -990,13 +980,11 @@ function canvas_mousemove(evt)
{
var deltaX=canvas_drag_last_x-evt.pageX;
var deltaY=canvas_drag_last_y-evt.pageY;
- //zoom_center_where=zoom_center_where_calc(evt.pageX);
var dpx=range.hps*deltaX;
if(
!(zoom_center_rel+dpx>(bandwidth/2-canvas_container.clientWidth*(1-zoom_center_where)*range.hps)) &&
!(zoom_center_rel+dpx<-bandwidth/2+canvas_container.clientWidth*zoom_center_where*range.hps)
) { zoom_center_rel+=dpx; }
-// -((canvases_new_width*(0.5+zoom_center_rel/bandwidth))-(winsize*zoom_center_where));
resize_canvases(false);
canvas_drag_last_x=evt.pageX;
canvas_drag_last_y=evt.pageY;
@@ -1007,22 +995,18 @@ function canvas_mousemove(evt)
else e("webrx-mouse-freq").innerHTML=format_frequency("{x} MHz",canvas_get_frequency(relativeX),1e6,4);
}
-function canvas_container_mouseout(evt)
+function canvas_container_mouseleave(evt)
{
canvas_end_drag();
}
-//function body_mouseup() { canvas_end_drag(); console.log("body_mouseup"); }
-//function window_mouseout() { canvas_end_drag(); console.log("document_mouseout"); }
-
function canvas_mouseup(evt)
{
if(!waterfall_setup_done) return;
- relativeX=(evt.offsetX)?evt.offsetX:evt.layerX;
+ relativeX = get_relative_x(evt);
if(!canvas_drag)
{
- //ws.send("SET offset_freq="+canvas_get_freq_offset(relativeX).toString());
demodulator_set_offset_frequency(0, canvas_get_freq_offset(relativeX));
}
else
@@ -1044,19 +1028,20 @@ function zoom_center_where_calc(screenposX)
return screenposX/canvas_container.clientWidth;
}
+function get_relative_x(evt) {
+ var relativeX = (evt.offsetX)?evt.offsetX:evt.layerX;
+ if ($(evt.target).closest(canvas_container).length) return relativeX;
+ // compensate for the frequency scale, since that is not resized by the browser.
+ return relativeX - zoom_offset_px;
+}
+
function canvas_mousewheel(evt)
{
if(!waterfall_setup_done) return;
- //var i=Math.abs(evt.wheelDelta);
- //var dir=(i/evt.wheelDelta)<0;
- //console.log(evt);
- var relativeX=(evt.offsetX)?evt.offsetX:evt.layerX;
+ var relativeX = get_relative_x(evt);
var dir=(evt.deltaY/Math.abs(evt.deltaY))>0;
- //console.log(dir);
- //i/=120;
- /*while (i--)*/ zoom_step(dir, relativeX, zoom_center_where_calc(evt.pageX));
+ zoom_step(dir, relativeX, zoom_center_where_calc(evt.pageX));
evt.preventDefault();
- //evt.returnValue = false; //disable scrollbar move
}
@@ -2235,12 +2220,6 @@ function add_canvas()
new_canvas.style.top=new_canvas.openwebrx_top.toString()+"px";
canvas_context = new_canvas.getContext("2d");
canvas_container.appendChild(new_canvas);
- new_canvas.addEventListener("mouseover", canvas_mouseover, false);
- new_canvas.addEventListener("mouseout", canvas_mouseout, false);
- new_canvas.addEventListener("mousemove", canvas_mousemove, false);
- new_canvas.addEventListener("mouseup", canvas_mouseup, false);
- new_canvas.addEventListener("mousedown", canvas_mousedown, false);
- new_canvas.addEventListener("wheel",canvas_mousewheel, false);
canvases.push(new_canvas);
while (canvas_container && canvas_container.clientHeight + canvas_default_height * 2 < canvases.length * canvas_default_height) {
var c = canvases.shift();
@@ -2254,17 +2233,13 @@ function init_canvas_container()
{
canvas_container=e("webrx-canvas-container");
mathbox_container=e("openwebrx-mathbox-container");
- canvas_container.addEventListener("mouseout",canvas_container_mouseout, false);
- //window.addEventListener("mouseout",window_mouseout,false);
- //document.body.addEventListener("mouseup",body_mouseup,false);
- canvas_phantom=e("openwebrx-phantom-canvas");
- canvas_phantom.addEventListener("mouseover", canvas_mouseover, false);
- canvas_phantom.addEventListener("mouseout", canvas_mouseout, false);
- canvas_phantom.addEventListener("mousemove", canvas_mousemove, false);
- canvas_phantom.addEventListener("mouseup", canvas_mouseup, false);
- canvas_phantom.addEventListener("mousedown", canvas_mousedown, false);
- canvas_phantom.addEventListener("wheel",canvas_mousewheel, false);
- canvas_phantom.style.width=canvas_container.clientWidth+"px";
+ canvas_container.addEventListener("mouseleave",canvas_container_mouseleave, false);
+ canvas_container.addEventListener("mousemove", canvas_mousemove, false);
+ canvas_container.addEventListener("mouseup", canvas_mouseup, false);
+ canvas_container.addEventListener("mousedown", canvas_mousedown, false);
+ canvas_container.addEventListener("wheel",canvas_mousewheel, false);
+ var frequency_container = e("openwebrx-frequency-container");
+ frequency_container.addEventListener("wheel",canvas_mousewheel, false);
add_canvas();
}
@@ -2277,18 +2252,6 @@ function shift_canvases()
p.style.top=(p.openwebrx_top++).toString()+"px";
});
canvas_maxshift++;
- if(canvas_container.clientHeight>canvas_maxshift)
- {
- canvas_phantom.style.top=canvas_maxshift.toString()+"px";
- canvas_phantom.style.height=(canvas_container.clientHeight-canvas_maxshift).toString()+"px";
- canvas_phantom.style.display="block";
- }
- else
- canvas_phantom.style.display="none";
-
-
- //canvas_container.style.height=(((canvases.length-1)*canvas_default_height)+(canvas_default_height-canvas_actual_line)).toString()+"px";
- //canvas_container.style.height="100%";
}
function resize_canvases(zoom)
@@ -2303,8 +2266,6 @@ function resize_canvases(zoom)
p.style.width=new_width;
p.style.left=zoom_value;
});
- canvas_phantom.style.width=new_width;
- canvas_phantom.style.left=zoom_value;
}
function waterfall_init()
@@ -3069,7 +3030,7 @@ function secondary_demod_init()
.mouseup(secondary_demod_canvas_container_mouseup)
.mousedown(secondary_demod_canvas_container_mousedown)
.mouseenter(secondary_demod_canvas_container_mousein)
- .mouseleave(secondary_demod_canvas_container_mouseout);
+ .mouseleave(secondary_demod_canvas_container_mouseleave);
init_digital_removal_timer();
}
@@ -3227,7 +3188,7 @@ function secondary_demod_canvas_container_mousein()
$("#openwebrx-digimode-select-channel").css("opacity","0.7"); //.css("border-width", "1px");
}
-function secondary_demod_canvas_container_mouseout()
+function secondary_demod_canvas_container_mouseleave()
{
$("#openwebrx-digimode-select-channel").css("opacity","0");
}